-
[JAVA] 객체지향언어 : 클래스와 객체 (1)프로그래밍/JAVA 2015. 7. 7. 00:00반응형
객체지향언어의 장점
- 코드의 재사용성이 높다 : 새로운 코드를 작성할 떄 기존의 코드를 이용하여 쉽게 작성 가능
- 코드의 관리가 용이 : 코드간의 관계를 이용해 적은 노력으로 쉽게 코드 변경 가능
- 신뢰성이 높은 프로그래밍 가능 : 제어자와 메서드를 사용해서 데이터를 보호하고 올바른 값을 유지하도록 하며 코드의 중복을 제거하여 코드의 불일치로 인한 오동작 방지 가능
클래스와 객체
클래스의 정의: 객체를 정의해둔것
클래스의 용도 : 객체를 생성하는데 사용
객체의 정의 : 실제로 존재하는것, 사물 또는 개념
객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름
유형의 객체 : 책상, 의자, 자동차, TV와 같은 사물
무형의 객체 : 수학공식, 프로그램 에러와 같은 논리나 개념
객체와 인스턴스
클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화라고하며 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라 칭함.
클래스 ->(인스턴스화) -> 인스턴스(객체)
객체의 구성요소 - 속성과 기능
오늘의 코드
package j0706;
class Tv {
// Tv의 속성(멤버변수)
String Color;
boolean power;
int channel;
// Tv의 기능(메서드)
void power() {
power = !power;
}
void channelUp() {
++channel;
}
void channelDown() {
--channel;
}
}
public class TvTest {
public static void main(String[] args) {
Tv t; // Tv인스턴스를 참조하기 위한 변수 t선언
t = new Tv(); // Tv인스턴스를 생성
t.channel = 7; // Tv인스턴스의 멤버변수 channel의 값을 7로 설정
t.channelDown();
System.out.println("현재 채널은 " + t.channel + " 입니다.");
}
}
package j0706;
class Tv {
// Tv의 속성(멤버변수)
String Color;
boolean power;
int channel;
// Tv의 기능(메서드)
void power() {
power = !power;
}
void channelUp() {
++channel;
}
void channelDown() {
--channel;
}
}
public class TvTest2 {
public static void main(String[] args) {
Tv t1 = new Tv();
Tv t2 = new Tv();
System.out.println("t1의 채널값은 " + t1.channel + "입니다");
System.out.println("t2의 채널값은 " + t2.channel + "입니다");
t1.channel = 7; // 채널값을 7으로한다.
System.out.println("t1의 채널값을 7로 변경하였습니다.");
System.out.println("t1의 채널값은 " + t1.channel + "입니다.");
System.out.println("t2의 채널값은 " + t2.channel + "입니다.");
}
}
package j0706;
public class TvTest3 {
public static void main(String[] args) {
Tv t1 = new Tv();
Tv t2 = new Tv();
System.out.println("t1의 채널값은 " + t1.channel + "입니다");
System.out.println("t2의 채널값은 " + t2.channel + "입니다");
t2 = t1; // t1이 저장하고 있는 값(주소)를 t2에 저장한다.
t1.channel = 7;
System.out.println("t1의 채널값을 7로 변경하였습니다.");
System.out.println("t1의 채널값은 " + t1.channel + "입니다");
System.out.println("t2의 채널값은 " + t2.channel + "입니다");
}
}
반응형'프로그래밍 > JAVA' 카테고리의 다른 글
[JSP] JSP 기본 (1) (0) 2015.07.13 [JAVA] IO Stream (1) (0) 2015.07.08 [JAVA] 객체지향 프로그래밍 (2) (0) 2015.07.08 [JAVA] 배열의 종류 및 활용 (0) 2015.07.06 [JAVA] 배열의 활용 (0) 2015.07.03