티스토리 뷰

주소에 접근하는 게 대괄호(배열)
주소를 쓰는 이유 : 영역의 구분 없이 다른 영역의 값을 수정할 때 사용
자바에서는 주소의 접근에 대한 연산자 자체가 없음 
c언어에서는 직접 주소에 접근하는 연산자가 있음
하드웨어 접근 가능, 개발자를 100% 믿음 -> 핵, 크낵, 버그만들 때 사용

■클래스(반)
공통 요소를 한 번만 선언해 놓고 가져다 사용만 하도록 설계한다.

1.타입이다
클래스 안에 선언된 변수와 메소드를 사용하고 싶다면,
해당 클래스 타입으로 변수를 선언해야 한다.
2.주어이다
Monkey.eat("바나나");
주어   동사  목적어
대문자로 시작하는 이유 : 모든 문장 앞에서 실행하기 때문에

■클래스에 선언된 것 > 필드(멤버)라고 부름
클래스 안에 필드가 메모리(하드웨어)에 올라가야 접근할 수 있음
메모리에 해당 클래스 필드를 할당하고 주소값을 가져오는게 new 클래스명();
new >> 힙메모리에 저장

■자동차 엄마차 = new 자동차();
                              메모리 할당된 필드의 ★주소값★ = 생성자 : 메모리에 클래스의 필드를 생성
                               └엄마차에 담김, 엄마차.필드내용

자동차 아빠차 = null; // 어떤 차를 살지 모르겠음
주소를 모를 때 넣는 초기값 = null;
생성자 >> 램메모리에 해당 클래스의 필드를 생성하고, 그 주소값까지 가져오는 게 역할

■클래스 선언
class 클래스명 {
필드(변수, 메소드)
}
영역이 필요하니 중괄호를 써야 함.

■클래스의 필드 사용
1.객체화(instance) : 객체(instance variable)를 만드는 작업, 추상적인 개념을 구체화시키는 작업.
클래스명 객체명 = new 생성자(); >> 객체화
객체명.필드명
※ .(마침표) : 하위 연산자, 멤버변수 접근 연산자, 닷 연산자, 점 연산자
2.static일 경우 클래스명으로 바로 접근 가능

■추상적인 개념을 구체화시켜놓은 게 객체
(클래스 : 자동차, 도형  / 객체 : 엄마차, 세모)
instance 실체화시키다
instance variable 객체화로 만든 객체(인스턴스 변수, 공적인 자리에서는 정확하게 표현하기)


■생성자
클래스 이름 뒤에 소괄호가 있는 형태, 메소드와 기능이 똑같지만 메소드라고 부르지 않는다.
생성자는 리턴이라는 기능이 존재하지 않기 때문이다.

메소드라고 부르면 안되지만 기능, 문법은 메소드랑 똑같음
apply() :메소드
Apply() :생성자
리턴타입자체가 없음 > 메소드는 리턴타입이 있음
생성자는 개발자가 임의로 리턴을 하지 못하게 막아놨음
할당된 필드에 주소값을 이미 리턴값으로 가지고 있음
사용한 거 통채로를 리턴값으로 봐야 함. 리턴값 = 할당된 필드의 주소값.


■생성자의 목적
1. 해당 클래스의 필드를 메모리에 할당한 후 부여된 주소값을 가져온다.
2. 초기화(클래스 안에 변수)

키워드(class 등)는 프로젝트 이름으로 쓸 수 있다
클래스 이름이나 패키지 이름은 키워드로 쓸 수 없음.

주소값이 들어가 있으면 > 객체(배열 제외, 배열은 배열임)
값이 들어가 있으면 > 변수
클래스를 선언하면 컴파일러가 자동으로 기본생성자 만들어줌, 생략해도 사용 가능.

객체별로 갖고 있는 주소값이 다르다, 서로의 구분점은 주소값임.

■기본 생성자
매개변수와 실행할 문장이 따로 없다.
클래스 선언 시, 자동으로 선언되며, 사용자가 직접 생성자를 선언하게 되면
기본 생성자는 없어진다.




============================================================================


this : 접근한 객체가 갖고있는 주소값


■this
필드에 접근한 객체가 누구인지 알아야 해당 필드에 접근할 수 있다.
이 때 접근한 객체가 가지고 있는 필드의 주소값을 this라는 변수에 자동으로 담긴다.

(class : Road)

생성자 단축키 : alt + shift + s > o
s누르고 스페이스로 체크 
initialize 초기화하다

■다형성(polymorphism) 폴리모르피즘
메소드의 성질(이름은 하나, 형태는 다양)
1.오버로딩(Overloading) : 매개변수의 개수나 타입이 다를 땐 이름을 똑같이 해도 된다.
매개변수의 개수 또는 타입이 다르면 동일한 이름의 메소드로 선언할 수 있다.
2.


지역변수 : 직접 초기화
전역변수 : 자동으로 초기화가 됨

(class : Shop)


[실습]
모여라 셀럽동물

이름, 나이, 먹이, 먹이개수, 생명

1.먹기
먹이가 있다면,
먹이 1개 사용, 생명 1 회복
2.자기
3초동안 생명 1 회복
3.산책하기
생명 1 감소
랜덤한 퀴즈를 출력하고 정답을 맞추면 먹이 2개 획득
오답 시 생명 1 감소
생명이 0이 되었다면 강제로 잠재우기
4.작별인사하기(나가기)

(class : Animal, Quiz)

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함