1. 클래스의 구조와 선언
1) 클래스 개요
- 클래스는 객체를 생성하기 위한 틀과 같으며 속성과 행위(메서드)를 포함
- 예 : 자동차
클래스에서는 개념만 정의함(승차정원, 최고속도 등..)
-> 객체 생성해서는 승차정원은 5로, 최고 속도는 : ~로 구체적으로 해서 만든다
- 클래스 : 추상화된 내용 -> 자체로는 어떤 역할을 하지 못함
- 객체 : 구체적인 내용 -> 객체로 생성해야 동작
2) 클래스 선언
class 클래스명 { -> 클래스 : 식별자 선언 규칙(영문 대문자로 시작, 특수문자 X 등)
데이터형 변수명; -> 속성 : 여러 개가 나올 수 있음 ex) 승차인원, 최고속도
생성자() { } -> 객체화되어 동작할 때 우선적으로 처리해야 할 일들을 넣어줌
데이터형 메서드() { } -> 행위 정의, 데이터형 -> 반환형(정수형, 문자열형 등으로 지정)
}
- 자동차 클래스 선언 예
class Car {
int num; //속성(승차정원)
int speed = 120; //속성(차량 속도, 120으로 초기화) -> 객체가 생성될 때 120으로 시작
void velUp() { //메서드(속도 10 증가) -> 메서드 2개가 설계되어 있음.
speed += 10;
}
void velDown() { //메서드(속도 10 감소)
speed -= 10;
}
}
-> void : 반환 타입이 없다.
2. 객체 생성
1) 객체 생성 개요
- 클래스를 선언하는 것만으로는 프로그램에서 사용할 수 없으며 객체 생성을 해야만 사용 가능함
- 객체 생성 문법 ┌> 안에 매개변수가 없는 기본 생성자 = 클래스명과 동일
-> Car tico = new Car();
클래스명 객체명(식별자 선언 규칙, 공백 X, 예약어 X 등.. 지켜서)
- 위 문장은 이미 선언된 Car클래스를 사용하여 tico라는 객체를 생성하고 있음
- 객체 변수(레퍼런스 변수라고도 함)는 기억공간에 할당됨
- 객체의 속성이나 메서드에 접근하기 위해서는 점(.) 연산자를 사용함
tico.speed = 110;
tico.velUp(); -> 메서드 호출
tico.velDown();
2) 객체 생성 활용
- Car 클래스를 선언하고 객체를 2개 생성하는 구문
class Car {
int num = 5;
int speed = 110; -> 초기화
void velUp() {
speed += 10;
}
void velDown() {
speed -= 5;
}
} -> 실제로 이 클래스를 메모리에 올려서 사용하고자 할 때는 아래처럼 객체 생성을 해야 함
Car tico1 = new Car() -> 객체 생성
Car tico2 = new Car()
└> 객체변수
tico1.velUp(); -> tico1의 할당되어있던 speed 값 110이 호출되고 +10되어 120이 됨
- 클래스의 선언과 객체 생성 예
class Car {
int num = 5;
int speed = 110;
void velUp() { //메서드, 현재는 void로 반환값이 없음
speed += 10;
}
void velDown() {
speed -= 5;
}
}
public class Exam9_1 {
public static void main(String[] args) {
Car tico = new Car(); -> tico라는 이름으로 객체 변수 만듦, 생성자는 클래스명과 동일하게 Car로
System.out.println(tico.speed); -> 110
tico.velUp();
tico.celUp();
System.out.println(tico.speed); -> 130
tico.velDown();
System.out.println(tico.speed); -> 125
}
}
'프로그래밍 > 자바(java) 융합개발자 2차' 카테고리의 다른 글
[취성패] 자바 배우기 - 선수학습(생성자) (0) | 2020.12.12 |
---|---|
[취성패] 자바 배우기 - 선수학습(메서드와 오버로딩) (0) | 2020.12.12 |
[취성패] 자바 배우기 - 선수학습(배열-일차원, 이차원) (0) | 2020.12.12 |
[취성패] 자바 배우기 - 선수학습(반복문-for, while구문) (0) | 2020.12.12 |
[취성패] 자바 배우기 - 선수학습(조건분기문-if else, switch case) (0) | 2020.12.12 |