1. 캡슐화 : 정보 은닉
2. 상속 : 존의 클래스를 재사용해서 새로운 클래스를 작성하는 것
3.추상화 : 객체들의 공통적인 특징을 뽑아내는 것
4. 다향성 : 프로그래밍 언어의 요소들이 다양한 자료형 type에 속할 수 있는 성질
- 클래스와 객체 -
클래스와 객체 : 객체를 정의해 놓은 것 -> 객체를 설명해두는 것
클래스의 용도 : 클래스는 객체를 생성하는데 사용한다.
객체의 정의 : 실제로 존재하는 사물이나 개념
객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름
-클래스와 객체 예시-
클래스예시:TV 설계도
객체예시:TV제품
객체의 구성요소 : 속성과 기능
속성 : 크기 길이 높이 색상과 같이 -> !변수!
기능 : 켜기 끄기 볼륨 높이기 낮추기 채널변경하기 -> !메서드!
ex)
Class TV
class tv{ <----- tv설계도
string color ; < ----- 변수들
boolean power;
int channel;
void power(){ <-------메서드
power=!power;
}
void channelUp(){
channel++;
}
void Channeldown(){
channel--;
}
}
---------------------------------------------
객체와 인스턴스
객체 : 모든 인스턴스를 대표하는 일반적인 용어
인스턴스 : 특정 클래스로부터 생성된 객체실행 중인 임의의 프로세스,
클래스의 현재 생성된 오브젝트
인스턴스가 객체보다 조금 더 크다고 생각하면 머리가 편하다
둘다 클래스로 부터 만들 수 있는 것이다
----------------------------------------------
- 클래스 작성 방법 -
1.public class가 있는 경우 소스파일의 이름은 반드시 public class의 이름과 일치해야한다
2. public class가 없을 때는 소스파일의 이름과 달라도 상관없다
3. public class가 2개 이상은 X
4. 대소문자까지 완벽하게 일치해야함
5. main메소드가 있는 클래스는 반드시 소스파일과 이름이 같아야 한다
- 객체의 생성 -
클래스명 변수명 :
Tv t -> Tv클래스 타입의 참조변수 t를 선언
변수를 선언함 -> 기본형이 아니여서 참조형이다.
변수명 = new 클래스명;
t=new Tv() -> 인스턴스를 생성한 후 , 생성된 tv인스턴스 주소 t를 저장
ex) Scanner sc=new Scanner();
Tv객체의 주소를 가지게 된다 -> 주소위치를 알아서 거기서 객체를 다루는 것
void 는 단발성이라 한번만 쓸 때 넣는 것
public 이 들어가는 이유는 어디서든 꺼내쓸 수 있게 하는 것
음악폴더에 음악 게임폴더에 게임이 있는데
게임하면서 음악도 듣고 싶으면 퍼블릭을 줘야한다
private 은 다른 곳에서 꺼내쓰지 못하게 하는 것
만일 참조변수 t의 이름이 다르면 각 변수가 별도의 변수가 된다
Ex)
t1.channel=7;
t2.channel=8;
둘이 다른 공간에 저장이 되기 때문에 서로 별도의 변수가 된다
t1=t2를 해버리면?
원래 t2의 공간은 사용불가하고 gc 즉 갈비지 컬렉터가 메모리를 알아서 없애준다
즉 하나의 인스턴스를 여러개의 참조변수가 가리키는건 가능하지만 하나의 참조 변수에 여러개의 인스턴스는 불가능
t2가 방을빼고 t1의 방에 들어가버려서 같은 값 7이 된다
'개발' 카테고리의 다른 글
2022-08-29 스마트 에디터 게시판 만들기 (0) | 2022.08.29 |
---|---|
2022-08-29 페이징처리 (0) | 2022.08.29 |
220720-CSS 공부한 것 간단 정리 (0) | 2022.07.20 |
git을 배워보았다 (0) | 2022.07.02 |
변수와 리터럴의 타입 불일치 (0) | 2022.07.01 |