클래스(Class)
- 객체를 정의하는 설계도
- 붕어빵 틀
- 레시피
public class 클래스명 {
// 객체 변수
// 메소드
// (접근제어자)
// (static)
}
클래스명 객체명 = new 클래스명();
객체(Object)
- 실체(?)
인스턴스(Instance)
- 클래스와 객체의 관계입니다.
- 클래스로부터 객체를 선언 (인스턴스 환)
- 어떤 객체는 어떤 클래스의 인스턴스
생성자(Constructor)
- 객체가 생성될 때 자동으로 호출됩니다.
- 생성자 규칙
- 클래스명과 이름 맞춰야합니다.
- 리턴 타입은 없습니다.
public class 클래스명 {
// 바로 아래가 생성자
클래스명() {}
}
this : 객체 자신을 의미합니다.
this() : 생성자
위에 것들을 이용한 간단한 예시
class Car {
String name;
String type;
public void printCarInfo() {
System.out.println("=== Car Info ===");
System.out.println("name: " + name);
System.out.println("type: " + type);
}
public void move() {
System.out.println("이동!");
}
public void brake() {
System.out.println("정지!");
}
}
class Car2 {
String name;
String type;
// Car2() {} 생성자 만들기
Car2(String name, String type) {
this.name = name;
this.type = type;
System.out.println("생성자 출력!");
}
public void printCarInfo() {
System.out.println("=== Car Info ===");
System.out.println("name: " + name);
System.out.println("type: " + type);
}
public void load() {
System.out.println("짐을 주세요!");
}
public void horn() {
System.out.println("빵빵!");
}
}
public class Main {
public static void main(String[] args) {
Car myCar1 = new Car();
myCar1.name = "a";
myCar1.type = "suv";
myCar1.printCarInfo();
myCar1.move();
myCar1.brake();
Car2 myCar2 = new Car2("b", "sedan");
myCar2.printCarInfo();
myCar2.load();
myCar2.horn();
}
}
접근제어자
- 클래스의 변수나 메소드의 접근에 제한을 두는 키워드입니다.
접근제어자의 종류
private | 해당 클래스에서만 접근 가능합니다. |
public | 어디서든 접근 가능합니다. |
default | 해당 패키지 내에서만 접근 가능합니다. |
protected | 해당 패키지 및 상속받은 클래스에서 접근 가능합니다. |
Static
- 변수나 메소드의 특성을 바꾸는 키워드
- 특징
- 메모리에 한번만 할당됨
- 즉, static 변수나 메소드는 공유되는 특성을 가짐
- Static 클래스 변수
- 해당 클래스이 각 객체들이 값을 공유
- Static 클래스 메소드
- 객체를 생성하지 않아도 호출 가능
'Programming Language > Java' 카테고리의 다른 글
다향성(Polymorphism) (0) | 2023.05.17 |
---|---|
상속(Inheritance) (0) | 2023.05.17 |
객체지향 프로그래밍(Object Oriented Programing) (0) | 2023.05.17 |
HashMap 주요 메소드 (0) | 2023.05.17 |
HashSet 주요 메소드 (0) | 2023.05.17 |