public class 클래스명 { // 클래스 선언
Data_Type 변수명; // 클래스 변수 선언
public 클래스명 (파라미터1, 파라미터2, ...) {
// 생성자 구현
}
public Return_Type 메소드명 (파라미터1, 파라미터2, ...) {
// 메소드 구현
}
}
객체란 실제로 존재하는 것
Java 프로그래밍에서 객체란 클래스 설계서대로 작성한 클래스의 속성에 특정한 ㄱ밧드을 대입하여 의미를 가지게 하는 것
Java 프로그래밍은 객체를 생성하고, 그 객체를 사용하는 것이다.
Java 프로그래밍 방법
키워드 new를 사용하여 객체 생성하기
클래스명 변수명 = new 클래스명();
변수명.필드명;
변수명.메소드명(값, ...);
생성자는 클래스를 이용하여 객체를 만들어 주는 작업자다.
자동으로 만들어주는 기본 생성자
파라미터 있는 생성자의 역할
this
생성자 추가 시 주의점
생성자 오버로딩
this로 클래스 내의 다른 생성자 호출
public Book(String author) {
this.author = author;
}
public Book(String title, String author) {
this(author);
this.title = title;
}
package는 관련 있는 클래스들의 집합이다.
패키지 선언은 클래스 파일의 맨 위에 한 번만 작성
패키지가 선언된 클래스는 패키지 이름으로 폴더가 만들어지고, 그 위치에 저장
.
(dot)을 기준으로 하위 폴더가 생성package 패키지명;
import 선언 방법
사용하고 싶은 클래스의 경로를 적어준다.
package 선언문 다음, class 선언문 앞에 작성
import 선언은 여러 번할 수 있다.
*
를 이용하여 한 번에 import 할수있다.import 사용하고자_하는_패키지명.클래스명;
import 사용하기
같은 패키지에 있는 여러 개의 클래스를 import 하는 경우
import com.Building;
import com.Student;
import com.*;
set + 변수명
으로 사용get + 변수명
으로 사용Stack
Heap
참조
주소값을 가지고 있고, 변수는 참조 주소값을 이용하여 객체를 찾아간다.객체를 생성하지 않고 클래스의 필드와 멤버 메소드를 호출하는 방법
static 키워드가 붙은 필드나 메소드는 클래스 이름을 구분자로 사용
static 키워드를 통해 생성된 정적 멤버들은 Heap 영역이 아닌 Static 영역에 할당되어 모든 객체가 공유하여 하나의 멤버를 어디서든지 참조할 수 있는 장점을 가짐
하지만 Garbage Collector의 관리 영역 밖에 존재하기에 static영역에 있는 멤버들은 프로그램의 종료시까지 메모리가 할당된 채로 존재하게 됨
main에 static을 사용하는 이유도 main함수가 메모리에 미리 올라가있어야 시작점인 main()
메소드를 호출할수있기때문에 static을 붙임