JAVA - 05

Lumi·2021년 5월 31일
0
post-thumbnail

2021-05-31

9강 : 참조 자료형 변수

기본 자료형 : int, long, float 등등
참조 자료형 : String, Data, Student 등등(만들수 있는것)

참조 자료형 같은 경우에는 해당 변수에 대해 값을 생성해 주어야함
-> String 경우에는 예외

Hojin 이라는 값에 국어와 수학 점수를 담는다고 가정을 할떄

나중에 만약 subject가 많아지게 된다면 배열을 사용하게 된다.

10강 : 접근 제어 지시자

클래스 외부에서 클래스의 멤버 변수, 메서드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드'

private : 같은 클래스 내부에서만 접근 가능

-> 반드시 get, set함수를 사용 해야함

아무것도 없음 : 같은 패키지 내부에서만 접근 가능

protected : 같은 패키지나 상손관계의 클래스에서만 접근 가능

public : 클래스의 외부 어디서나 접근 가능

쉽게 말하면 보안이라고 생각해도 될듯

private 으로 선언된 멤버변수를 사용 하고 싶을떄에 get(), set()메서드를 사용

private를 선언하여 get,set을 이용하는것과 그냥 오픈하여 사용하는것의 차이

--> 멤버 변수의 오류를 잡기가 쉽다(private를 하는것이)

11강 : 캡슐화

꼭 필요한 정보와 기능만 외부에 오픈한다는 개념
대부분의 멤버 변수와 메서드를 감추고 외부에 통합된 인터페이스만은 제공하여 일관된 기능을 구현 하게 함.

css나 html 같은 것은 private로 놓고 정보값들을 public로 사용한다라고 이해했음

12강 : 객체 자신을 가리키는 this

생성자에서 또 다른 생성자를 호출 할떄 사용
인스턴스 자신의 메모리를 가르킴

this가 Person을 가르키기 떄문에 초기화가 이름없음, 1로 된다.

13강 : 객체 간의 협력

매개 변수로 객체가 전달되는 경우에 발생한다.
14강 코딩에 대한 기본 내용

14강 : 13강을 프로그래밍으로 구현해보기

================ 코딩 내용 ====================

James와 Tomas는 각각 버스와 지하철을 타고 학교에 갑니다.
James는 5000원을 가지고 있었고, 100번 버스를 타면서 1000원을 지불합니다.
Tomas는 10000원을 가지고 있었고, 초록색 지하철을 타면서 1200원을 지불합니다.

두 학생이 버스와 지하철을 타는 상황을 구현해 봅시다.

코딩 프로그래밍 이해

public void takeBus(Bus bus)

-> 보통 new생성자 함수를 받게되면 변수를 적는데 bus는 버스의 이름으로 이해할수 있지만
Bus는 왜 들어가는지를 몰랐음

--> 이유 : Bus 라는 class를 표시해준거임
--> Student class에는 Bus라는 class가 없기 떄문에 다른 class에 있는 Bus class를 불러 온다는 의미라고 생각하면됨.

class를 여러개 두는 이유

만약 Bus라는 class를 Student에 저장하지 않고 따로 하게 된다면
StudentTest에서 또 Bus의 생성자 함수를 받아야 하기떄문에
공통된 부분이 있으면 한곳에 쓰는 것이 좋다.
--> 시간을 절약할수 있음
--> 나중에 수정하기가 편함
--> 오류가 적음

-- 그림으로 설명하면 이런 느낌

==> 개인적으로 이떄까지 배운 모든걸 이 강의하나에서 볼수 있다고 생각 그러니 자주자주 복습해볼것!!

15강 : 객체 협력 복습

앞의 예제에서 Edward는 지각을 해서 택시를 타야 했습니다.
20000원을 가지고 있었는데 10000원을 택시비로 사용했습니다.
택시는 '잘나간다 운수' 회사 택시를 탔습니다.

14강 코드에서 하나더 추가해진것

16강 : 여러 인스턴스에서 공통으로 사용하는 변수(static)

여러 인스턴스 공유하는 기준 값이 필요한 경우
EX :
1. 학생 마다 새로운 학번 생성
2. 카드 발급떄마다 새로운 번호를 부여
3. 사원이 입사할때마다 새로운 사번 부여

인스턴스가 생성될떄 만들어 지는 변수가 아님.
인스턴스 생성과 상관 없이 사용 가능하므로 클래스 이름으로 직접 참조

Heap 메모리가 아니라 data 영역에 저장이 된다.

--> 사원이 추가 될때마다 다른 사번을 부여하는 코드

--> serialNum은 static 변수이기 떄문에 다른 임피던스가 없어도 단독으로 사용 가능하다.

ctrl + space를 자주 사용하자 제발!!! 익숙해지자!

17강 : static 메서드의 구현과 활용(16강 코드 이용)

static 메서드는 인스턴스 생성과 무관하게 클래스 이름으로 호출 가능
-> 기준값이기 때문에 다른 new 생성자 함수를 필요로 하지 않음.


int i 의 값 같은 경우에는 문제가 없다.
--> 실행 될떄만 사용되고 실행후에는 없어지는 값이기 떄문에

하지만 employeeName = "Lee"; 는 문제가 있다.
값이 getSerialNum 이라는 메소드가 불러지기 전에 Name 이라는 값이 없을수도 있기 떄문에
--> 즉 일반 변수를 사용 할수가 없다.
--> 지역변수는 괜찮음.

==> 잘 이해가 안되는거 같기도함;; 궁금증이 생길떄 확인하면좋을듯.

--> scope에 대한 정리

=========== 느낀점 ==========

음.. 뭔가 알꺼 같으면서도 모르는거 같은 느낌이 듬;;
내가 짜놓은 코딩을 보면서 새로운 코딩을 짤수는 있다고는 생각하지만 보지 않고 짜는것은 자신이 없음...

좀더 공부해보고 나중에 클론코딩을 하지 않고 처음부터 혼자서 프로그래밍을 해보고 싶음

복습 필수라고 생각

profile
[기술 블로그가 아닌 하루하루 기록용 블로그]

0개의 댓글