ex) 제품 자체
→ 설계도를 잘 만들어 놓으면, 제품을 만드는 일이 쉽다.
→ 클래스는 객체를 생성하는데 사용될 뿐
→ 원하는 기능의 객체를 사용하기 위해서는 먼저 클래스로부터 객체를 생성하는 과정이 필요
class TV {
String color;
boolean power;
int channel;
void power() { power = !power;}
void channelUp() { channel++;}
void channelDown() { channel--;}
}
소스파일(*.java) 이름
은 public class의 이름
과 일치해야 함Tv t; // Tv 클래스 타입의 참조변수 t 선언
t = new Tv(); // Tv 인스턴스 생성(new) 후, t에 주소를 저장
Tv[] tvArr = new Tv[3]; // 참조변수 배열(객체 배열) 생성
// 객체 생성하여 각 배열에 저장 필요
tvArr[0] = **new Tv()**;
tvArr[1] = **new Tv();**
tvArr[2] = **new Tv();**
static
+ 인스턴스 변수)클래스명.클래스변수명
참조변수명.인스턴스변수명
class Card {
// 인스턴스 변수 - 개별 속성을 지닌다.
Stirng kind; // 무늬
int number; // 숫자
// 클래스 변수 - 공통 속성을 지닌다.
**static** int width = 100; // 폭
**static** int height = 250; // 넓이
}
반환타입 메서드이름 (타입 변수명, 타입 변수명, …) // (선언부 )
{
// 메서드가 호출되면 수행할 코드 (구현부)
}
return;
추가클래스이름.메서드이름()
으로 호출참조변수.메서드이름()
으로 호출한 클래스 안에 같은 이름의 메서드 여러 개 정의
1. 메서드 이름이 같아야 한다.
2. 매개변수 개수 또는 타입이 달라야 한다.
3. 반환 타입은 관계없다.
println()
→ String, int, boolean, char, long … 어떤 타입의 매개변수를 지정해도 출력 가능하다.인스턴스가 생성될 때마다 호출되는 인스턴스 초기화 메서드
→ 인스턴스 변수의 값을 초기화
1. 클래스 이름과 같아야 한다.
2. return 값이 없다.
3. void 붙이지 않는다.
new
가 인스턴스 생성!class Point {
Point() { } // 기본 생성자(default constructor)
Point(int x, int y) { ... } // 매개변수가 있는 생성자
Car(String color, String gearType, int door) {
this.color = color;
this.gearType = gearType;
this.door = door;
}
this()
를 사용하지 않고 클래스명();
으로 생성자 호출하면 Error```java
class Car2 {
String color;
String gearType;
int door;
Car2() {
this("white", "auto", 4);
}
Car2(String color) {
this(color, "auto", 4);
}
Car2(String color, String gearType, int door) {
this.color = color;
this.gearType = gearType;
this.door = door;
}
}
```
[참고] <Java의 정석 - 기초편>