1. 객체지향 언어란?
객체지향 언어는 여러 가지 문제들을 해결하기 위해 실제 세계를 컴퓨터 속에 구현하고자 하는 노력에서 출발한다.
객체지향 언어란 현실에 존재하는 사물과 개념들을 소프트웨어적으로 구현하고, 그 구현된 객체들이 상호작용하여 데이터를 처리하는 방식입니다.
2. 클레스와 객체
클래스는 객체를 만들기 위한 설계도로서, 클래스를 통해 객체를 정의하고 생성합니다.
1. 클래스란?
자동차를 만들기 위해서 자동차의 설계도가 필요하듯이 객체를 만들기 위해서는 객체의 설계도가 필요합니다. 클래스가 바로 객체의 설계도와 같은 역할을 합니다. 클래스에는 객체의 속성과 기능들이 정의되어 있고 이를 통해서 객체를 생성합니다.
2. 인스턴스
인스턴스는 클래스를 통해 만들어진 형태입니다.
3. 클래스의 사용
참조변수는 주소를 저장하는 변수
package chapter05;
public class Car { // 메인함수는 시작점에 하나
// 기본변수는 자동으로 초기화 됨
boolean powerOn;// 시동
String color; // 차량의 색상
int wheel; // 바퀴의 수
int speed; // 속력
boolean wiperOn;// 와이퍼
void power() {powerOn = !powerOn;} // 시동 메서드
void speedUp() {speed++;} // 액셀 메서드
void speedDown() {speed--;} // 브레이크 메서드
void wiper() {wiperOn = !wiperOn;} // 와이퍼 메서드
}
package chapter05;
public class exam32 {
public static void main(String[] args) {
// 데이터 타입 (Car) 검정색 : 주소 담음
// 기본변수는 자동으로 초기화 됨
// mycar(지역변수: 메서드의 자식)는 메인함수 안에서만 사용가능
Car mycar = new Car();
System.out.println("시동 처음 초기화 : " + mycar.powerOn); // false
System.out.println("차의 색상 초기화 : " + mycar.color); // null : 참조변수의 주소가 없다
System.out.println("바퀴의 수 : " + mycar.wheel); // 0
System.out.println("속력 초기화 : " + mycar.speed); // 0
System.out.println("와이퍼 작동 초기화 : " + mycar.wiperOn); // false
mycar.power(); // 시동 메서드 실행
System.out.println("시동 메서드 동작 : " + mycar.powerOn); // true
mycar.power();
System.out.println("시동 메서드 다시 동작 : " + mycar.powerOn); // false
mycar.color = "black"; // 색상 변수에 black 대입
System.out.println("현재 차의 색상 : " + mycar.color); // black
}
}
package chapter05;
public class exam33 {
public static void main(String[] args) {
Car mycar1 = new Car();
Car mycar2 = new Car();
mycar1.color = "red";
mycar2.color = "black";
mycar1.speedUp();
mycar2.wiper();
System.out.println("mycar1의 색 : " + mycar1.color); // car 인스턴스 생성
System.out.println("mycar2의 색 : " + mycar2.color); // car 인스턴스 하나 더 생성
System.out.println("mycar1의 속도 : " + mycar1.speed); // mycar1의 색상 : 빨강
System.out.println("mycar2의 속도 : " + mycar2.speed); // mycar2의 색상 : 검정
System.out.println("mycar1의 와이퍼 작동 여부 : " + mycar1.wiperOn);
System.out.println("mycar2의 와이퍼 작동 여부 : " + mycar2.wiperOn);
}
}