[JAVA] class

hi·2022년 1월 7일
0

클래스란? 객체를 정의해 놓은 것
클래스의 용도? 객체를 생성하는데 사용됨

클래스로부터 객체를 만드는 과정 : 클래스의 인스턴스화
클래스로부터 만들어진 객체 : 클래스의 인스턴스

👉객체와 인스턴스는 같은 의미이지만 객체가 인스턴스보다 포괄적인 의미

ex) 책상은 인스턴스다 x
    책상은 개체다 o
    
    책상은 책상 클래스의 객체이다 x
    책상은 책상 클래스의 인스턴스다 o

클래스의 구조 🔎

(접근제어자) class 클래스명 {
	멤버변수(=속성,필드)
    	생성자
    	메서드(=기능)
}

1. 변수의 종류

1) 클래스 변수

  • static + 인스턴스 변수
  • 클래스 영역에 선언
  • 클래스가 메모리에 올라갈 때 생성
  • '클래스이름.클래스변수' 형식으로 사용
  • 공통된 값을 가짐

2) 인스턴스 변수

  • 클래스 영역에 선언
  • 클래스의 인스턴스를 생성할 때 만들어짐
  • 각기 다른 값을 가짐

3) 지역 변수

  • 메서드, 생성자, 초기화 블럭 내부에 선언
  • 메서드가 종료되면 소멸되어 사라짐

1.2. 멤버변수에 값을 저장하는 방법

1) 기본값

2) 명시적으로 초기화

ex) int a = 10; 
    String s = "a";

3) 생성자를 통해 초기화

  • static 없는 멤버 변수만 가능 ( static final 멤버변수는 값을 가진채로 바로 메모리에 올라감)

2. 생성자

생성자? 멤버 변수에 값을 채워 객체 생성

  • 생성자가 없으면 컴파일러가 자동으로 기본 생성자 삽입

  • 생성자 { } 안에 super( );가 없으면 자동으로 첫줄에 삽입
    super( ) : 부모 생성자를 호출해 부모 객체 생성

  • 기본 생성자는 부모 생성
    => 자식의 멤버 변수에 '기본 값'으로 채워 자식 객체 생성

public class Book { 
	public book() {	    	//생성자
    		super();	//부모의 생성자 호출
        } 
}



class Book {  
	book() {		
    		super();
        } 
}

1.2 this( )

  • 생성자 안에서 '자신의 다른 생성자' 호출할 때 사용.
  • 매개변수가 적은 생성자 안에서, 매개변수가 많은 다른 생성자를 호출할 때 사용
  • this( ); 위에는 어떠한 실행문도 있어서는 안 됨
    (super도 불가 : 두개의 부모가 생성되므로)

3. 메서드

  • 기능
  • get~( ) : 멤버변수의 값을 얻어올 때
    set~(매개변수) : 전달 받은 매개 값으로 멤버 변수의 값을 변경할 때

🔎 final

1) final class 클래스명 : 상속 불가
2) final 멤버 변수 : 값 변경 불가
3) final 메서드 : 재 정의 불가

🔎 public

  • 1개의 java 파일에 여러 클래스를 설계하는 경우
    public은 반드시 1개의 클래스에만 붙일 수 있음
  • 파일이름 = public 붙은 클래스 이름
  • main( ) 클래스가 같이 있다면
    public은 무조건 main( ) 클래스에만 붙일 수 있음

0개의 댓글