안녕하세요 #a991102 입니다. 오늘은 객체지향단원에 들어갔는데 ! 이론이 중요한것들이 보여 이론은 핵심만 찝어서 올리도록 하겠습니다 잘부탁드립니다.
1-1.객체지향언어 의 특징
1.코드의 재사용성이 높다
(새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다.)
2.코드의 관리가 용이하다
(코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다.)
- 신뢰성이 높은 프로그래밍을 가능하게 한다
(제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며 ,
코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지 할 수 있다)
객체지향언어의 가장 큰 장점은 '코드의 재사용성이 높고 유지;보수가 용이하다' 는 것이다.
1-2.클래스와 객체의 정의와 용도
클래스란 ?
(객체를 정의해 놓은것, 또는 클래스는 객체의 설계도 또는 틀이라고 정의할 수 있다.
클래스는 객체를 생성하는데 사용되며, 객체는 클래스에 정의된 대로 생성된다.)
클래스의 정의 - 클래스란 객체를 정의해 놓은 것이다.
클래스의 용도 - 클래스는 객체를 생성하는데 사용된다.
객체란?
(실제로 존재하는 것 이다. 우리가 주변에서 볼 수 있는 책상, 의자, 자동차와 같은 사물들이 곧 객체이다 .)
객체의 정의 - 실제로 존재하는것 ,사물 또는 개념
객체의 용도 - 객체가 가지고 있는 기능과속성에 따라 다름
2-1.객체와 인스턴스
클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화 라고하면, 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스 라고한다.
예를들면 Tv 클래스로부터 만들어진 객체를 Tv 클래스의 인스턴스 라고 한다.
결국 인스턴스는 객체와 같은 의미이지만 ,
객체는 모든 인스턴스를 대표한느 포괄적인 의미를 갖고 있으며
인스턴스는 어떤 클래스로부터 만들어진 것인지를 강조하는 보다 구체적인 의미를 갖고 있다.
2-2 객체의 구성요소 - 속성과 기능
객체는 속성과 기능, 두 종류의 구성요소로 이루어져 있으며, 일반적으로 객체는 다수의 속성과 다수의 기능 갖는다. 즉, 객체는 속성과 기능의 집합이라고 할 수 있다.
그리고 객체가 가지고 있는 속성과 기능을 그 객체의 맴버 라 한다
속성 = 맴버변수, 특성, 필드. 상태
기능 = 메서드. 함수, 행위
보다 쉽게 이해할 수 있도록 TV 를 예를 들어보면
속성 - 크기, 길이, 높이 , 생삭 ,불륨 ,채널 등
기능 - 켜기, 끄기 , 볼륨 높이기 , 볼륨 낮추기, 채널 변경하기 등
2-3 .인스턴스의 생성과 사용
Tv 클래스를 선언한 것은 Tv 설계도를 작성한 것에 불과하므로 Tv 인스턴스를 생성해야 제품 을 사용할 수 있다.
클래스로부터인스턴스를생성하는 방법은 여러가지가 있지만 일반적으로는 다음과 같다.
클래스명 변수명 // 클래스의 객체를 참조하기 위한 참조변수를 선언
변수명 = new 클래스면 (); // 클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장
Tv t; // Tv 클래스 타입의 참조변수 t 선언
t = new Tv(); // Tv 인스턴스를 생성한 후, 생성된 TV 인스턴스의 주소를 T에 저장
이상으로 간단하면서 상세한 이론을 마치겠습니다.
package 삼월십구일;
class Tv{
String color;
boolean power;
int channel;
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 의 channel 값은 :" + t1.channel + "입니다");
System.out.println("t2 의 channel 값은 :" + t2.channel + "입니다");
t2 = t1;
t1.channel = 7; //channel 값을 7로 한다
System.out.println("t1의 channel 값을 7로 변경하였습니다");
System.out.println("t1의 channel의 값은 :"+t1.channel+"입니다");
System.out.println("t2의 channel의 값은 :"+t2.channel+"입니다");
}
}
//위의 예제는 Tv 클래스의 인스턴스 t1과 t2 를 생성후에 , 인스턴스 t1 의 맴버변수인 channel 의 값을 변경하였다.
Congratulations @a991102! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
You got your First payout
Award for the number of posts published
Click on any badge to view your own Board of Honor on SteemitBoard.
To support your work, I also upvoted your post!
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
짱짱맨 호출로 왔습니다!
한주 수고하세요
감사합니다^^ 오치님도 화이팅하세요
코드를 올릴 때는 아래 내용을 참고하세요.
https://steemit.com/kr-dev/@kdj/2mgzti