안녕하세요 #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
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
짱짱맨 호출로 왔습니다!
한주 수고하세요
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
감사합니다^^ 오치님도 화이팅하세요
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
코드를 올릴 때는 아래 내용을 참고하세요.
https://steemit.com/kr-dev/@kdj/2mgzti
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit