본문 바로가기

Zero Base 백엔드 스쿨 6기

ZB BE 6th - 자바 공부 #6-1. 클래스와 객체

[클래스와 객체]

1. 클래스 (class) : 객체를 정의하는 설계도, 붕어빵 틀, 레시피

2. 객체, 인스턴스

2-1 객체(Object) : 실체

2-2 인스턴스 (Instance) : 클래스와 객체의 관계
클래스로부터 객체를 선언 (인스턴스 화) 어떤 객체는 어떤 클래스의 인스턴스 라는 관계를 설명할때 사용.

3. 클래스 사용
클래스 : 객체를 만들기 위한 설계도 - 객체 변수, 메소드로 이루어짐.

[클래스 형태]
public class 클래스명 {
// 객체 변수
// 메소드 : 리턴타입, 메소드명(파라미터)
ex) sout 단축키, toBinaryString 
// + 접근제어자 : 추후 실습을 통해 교육 예정
// + static        : 추후 실습을 통해 교육 예정
}
4. this, this()
this : 객체 자신을 의미
this() : 생성자의 호출을 의미

 

[중요]
메인 클래스 위에 클래스 + 메소드 정의하는 것은, 메인클라스에서 사용할 메소드에 대해 설계하는것.
메인 클래스 위에서 정의한 메소드는 메인 클래스에서는 간단히 메소드명만 적으면 활용된다.

(( 메인클래스 및 메인클래스 위에서의 작성과 사용 코드 예시 ))

A. 
[클래스 작성시] 

class 클래스명 {
String/Int/Double 변수명1;
String/Int/Double 변수명2;
String/Int/Double 변수명3;

public void 메소드1이름 () {
  메소드1의 수행문 
 }
public void 메소드2이름 () {
  메소드2의 수행문 
 }
public void 메소드3이름 () {
  메소드3의 수행문 
 }


[클래스 사용시]
public class Main { 
아래 public static void main(String[] args) { 하기에 작성.

최상단클래스명 변수명4 = new 최상단클래스명 (); // 객체 생성

변수명4.변수명1 = 변수명1의데이터타입에 맞는 데이터값;
변수명4.변수명2 = 변수명2의데이터타입에 맞는 데이터값;
변수명4.변수명3 = 변수명3의데이터타입에 맞는 데이터값;

변수명4.실행원하는메소드이름 ();
변수명4.실행원하는메소드이름 ();
변수명4.실행원하는메소드이름 ();

B.
[클래스 작성시]

class 클래스명{
String/Int/Double 변수명1;
String/Int/Double 변수명2;
String/Int/Double 변수명3;

     클래스명(String/Int/Double 변수명1, String/Int/Double 변수명2, String/Int/Double 변수명3) {
  this.변수명1 = A; // this.붙은것은 위의 선언된 변수명1과 같고 A는 메소드에서 지정한 변수이다. 
  this.변수명2 = 변수명2;
  this.변수명3 = 변수명3;

}

public void 메소드1이름 () {
메소드1의 수행문;
 

public void 메소드2이름 () {
메소드2의 수행문;
 

public void 메소드3이름 () {
메소드3의 수행문;
 
 } 
}

[클래스 사용시]
public class 해당 class파일 이름 { 
아래 public static void main(String[] args) { 하기에 작성.

최상단작성클래스명 변수명4 = new 최상단작성클래스명 (변수명1의 데이터, 변수명2의 데이터, 변수명3의 데이터);
최상단작성클래스명 변수명5 = new 최상단작성클래스명 (변수명1의 데이터, 변수명2의 데이터, 변수명3의 데이터);


변수명4.실행원하는메소드이름();
변수명5.실행원하는메소드이름();

 }
}

C. 
[클래스 작성시]
public class 클래스이름 {
public static void 메소드명1 (int/double/string/char 변수명1, int/double/string/char 변수명2) {
명령문 ;
 }
public static void 메소드명2 (int/double/string/char 변수명3, int/double/string/char 변수명4) {
명령문 ;
 }
[클래스 사용시]
public static void main (String [] args) {

int/double/string/char 변수명1, 변수명2;

변수명1 = 변수명1에 맞는 데이터값;
변수명2 = 변수명2에 맞는 데이터값;

sum (변수명1, 변수명2);
avg (변수명1, 변수명2);

 }
}

EX)
사용된 메소드 : sum, avg

public class CalculatorDemo {

    public static void sum (int left, int right){
        System.out.println(left + right);
    }
    public static void avg (int left, int right) {
        System.out.println((left+right)/2);
    }

    public static void main(String[] args) {
        int left, right;

        left = 10; right = 10;

        sum (left, right);
        avg (left, right);


        left = 15; right = 20;

        sum(left, right);
        avg(left,right);
    }
}