: 객체를 정의, 객체를 생성하는데 사용된다.
객체의 상태를 나타내는 필드와 객체의 행동을 나타내는 메소드로 구성되어있다.
클래스 | 객체 |
---|---|
제품설계도 | 제품 |
클래스를 선언할 때는
생성자(Constructor)와 메소드(Method)를 필수로 만들어줘야 한다.***
(필드는 선택 가능함)
전문성을 위해 여러개의 class를 만든다.
수정할 때 전체를 다 갈지 않아도 됨
//이해를 위한 예시
국어 - 선생님1
영어 - 선생님2
수학 - 선생님3
...
public class ClassName{
//필드(Field) - 객체의 데이터가 저장되는 곳
int fieldname;
//생성자(Constructor) - 객체 생성 시 초기화 역할 담당
ClassName() {
...;
}
//메소드(Method) - 객체의 동작에 해당하는 실행 블록
void methodName(){
...;
}
}
객체 = 인스턴스
객체는 인스턴스(instance)를 포함하는 일반적인 의미
클래스를 정의할 때 객체의 속성은 변수로, 기능은 메소드로 정의한다.
//객체의 구성요소
class Tv {
//객체의 속성 : 크기, 길이, 색상, 채널, 전원상태...
//객체의 속성은 변수로 정의한다.
String color;
boolean power;
int channel;
//객체의 기능 : 켜기, 끄기, 볼륨 높이기, 채널 높이기...
//객체의 기능은 메소드로 정의한다.
void power() {power=!power;}
void channelUp(channel++;)
void channelDown{channel--;}
}
클래스명 참조변수명; //객체를 다루기 위한 참조변수 선언
참조변수명=new 클래스명(); //객체생성 후 생성된 객체의 주소를 참조변수에 저장
//객체 생성 예시
Car mycar = new Car(); //객체 생성
myCar.accelerate(60,3);
//마이카 인스턴스 accelerate()메소드를 호출함
Tv t;
t=new Tv();
//한 개의 실행문으로도 작성 가능
Tv t=new Tv();
Tv t1=new Tv();
Tv t2=new Tv();
t2=t1; //t1의 값을 t2에 저장
t1.channel=7;
System.out.prinln(t1.channel);
System.out.prinln(t2.channel);
1) 클래스 = 데이터+함수의 결합
구조체+함수
- 변수 : 하나의 데이터를 저장할 수 있는 공간
- 배열 : 같은 타입의 여러 데이터를 저장할 수 있는 공간
- 구조체 : 타입에 관계없이 서로 관련된 데이터를 저장할 수 있는 공간
2) 클래스 - 사용자 정의 타입(User-defined type) :
프로그래머가 직접 새로운 타입을 정의할 수 있음
서로 관련된 값을 묶어 하나의 타입으로 정의함
//3가지 인티저를 class Time으로 묶을 수 있다.
class Time {
int hour;
int minute;
int seconds;
}
//사용
Time t=new Time();