Java - Class(2)_Class의 Member [IT 국비지원/구디 아카데미/김지훈 강사님]

hooon__dii·2023년 8월 29일
0

Java

목록 보기
8/11
post-thumbnail

Class Member

Class를 구성하는 요소.
속성을 표현하는 field와 기능을 표현하는 method , class를 객체화 해주며 생성된 객체의 필드를 초기화 해주는 constructor가 있다.

public class MemberEx{	// 클래스
	int fieldName;		// 필드 == 클래스 안에 있는 변수
    public MemberEx(){	// 생성자 (빈 생성자는 생략 가능)
    
    }
    public void methodName(){	// 기능을 구현하는 메소드
   
    }
}

필드(Field)

class에 포함된 변수를 의미한다.
필드는 클래스내에서 선언된 위치에따라 구분된다.

  • 클래스 변수 ( static variable )
  • 인스턴스 변수 ( Instance variable )
  • 지역 변수 ( local variable )

>> 참고 <<


메소드(Method)

어떤 특정 작업을 수행하기 위한 명령문의 집합.
메소드도 필드와 같이 클래스내에서 선언된 위치에 따라 구분된다.

  • 클래스 메소드 ( static method )
  • 인스턴스 메소드 ( Instance method )

>> 참고 <<


생성자(Constructor)

인스턴스가 생성(객체화)될 때 호출되는 ' 인스턴스 초기화 ' 메소드 이다.
인스턴스 초기화란 클래스가 객체화 될때 인스턴스 객체의 필드들의 초기값을 설정해주는것을 의미한다.
즉, 인스턴스 변수의 초기화 작업, 인스턴스 생성시 실행되어야할 작업을 위해서 사용된다.

특징

  • 생성자의 이름은 클래스의 이름과 같아야 한다.
  • 생성자는 return값이 없다. ( void도 사용하지않음 )
  • 생성자는 메소드 처럼 클래스 내에 선언한다.
  • 생성자의 이름은 클래스와 같아야 하기 때문에 여러개의 생성자를 만들 수 없는게 맞지만 오버로드(overload)라는 기능 때문에 여러개의 생성자를 가질 수 있다.

기본생성자(Default Constructor)

컴파일을 할 때 클래스에 생성자가 하나도 정의 되어 있지 않으면 컴파일러가 자동으로 기본 생성자를 생성해준다.
클래스에 매개변수가 있는 생성자를 정의해주었다면 기본생성자를 만들어주어야 사용이 가능하다.

public class Aclass { 	// 생성자를 정의 하지 않은 클래스
    // 객체화 할 때 굳이 int val의 값을 초기화 할 필요가 없다면 생성자를 생성 해 줄 필요가 없다
	// 컴파일러에서 자동으로 기본 생성자를 생성 해주기 떄문
	int val;
}



public class Bclass {   // 매개변수가 있는 생성자를 생성한 클래스
    
    int val;
    
    public Bclass(int val){	// 매개변수가 있는 생성자
        this.val = val;
    }
}



public class Test{
	public static main(String[] args) {
    	Aclass a = new Aclass();
        Bclass b = new Bclass();	// 빈 생성자를 만들어 주지 않아서 에러 발생
    }
}

Bclass를 객체화 할 때 에러가 나지 않게 하려면?

public class Bclass{
	int val;
    public Bclass(){
    	// 빈 생성자를 생성 해준다
    }
    public Bclass(int val){
    	this.val = val;
    }
}

or

// 매개변수가 있는 생성자를 사용 

public class Test{
	public static main(String[] args) {
    	Aclass a = new Aclass();
        Bclass b = new Bclass(1);	// int형 데이터를 매개변수로 주어서 초기화
    }
}

나도 Class의 멤버가 되고싶다......
IT국비지원 / 구디아카데미 / 김지훈 강사님

0개의 댓글