20.12.02

민주·2021년 1월 17일
  1. class의 변수와 method 호출하기


    - Car라는 클래스를 만들어 안에 변수와 메서드를 입력해주었다
    - 특정 클래스를 사용하기 위해서는 객체화를 해야한다
    - 객체화(복사)를 해야 여러군데(여러명)에서 쓸 수 있고 마음대로 변경이나 버려도 된다.
    - 9 : 객체화 하는 과정
    - 객체화를 한 변수인 car. 를 치면 쓸 수 있는 변수나 메서드들이 나온다

  2. method overload



    - 여러개의 메서드를 만들 경우 하나하나 작명하기가 힘들다.( 개발자입장에서 편하게 )
    - method overload를 사용하면 같은 이름으로 여러 개 제작이 가능하다.

    - main 클래스에서 객체화를 해주고 메서드를 호출하여 사용할 때 다 같은 메서드 이므로 아무거나 선택 후 만든 메서드에 충족될만한 인자값을 넣으면 알아서 찾아간다. ( 사용자 편안 )
    - overload -> 면접 볼때 많이 물어보고 실제로 어떻게 쓰는지 예시를 설명 해주면 좋음 ★

  3. 정적 멤버와 static keyword


    - class Sub에 변수와 메서드를 만들어 주었다
    - static영역은 원본이 저장되는 영역이다
    - static 활용 : 원본을 수정해야하는경우
    - 9 : multi는 static영역이 아니기 때문에 객체화를 시켜 사용 가능
    - 13 : static으로 선언된 메서드일때는 객체화된 변수를 사용할 수 없다
    ○ 하지만 jdk에서 편의성을 위해 내부적으로 접근가능하도록 처리한다.
    ○ 해당 객체의 원본을 찾아서 연결해준것
    ○ 사용할 수 있으나 이렇게 하지 말 것
    - 19, 20, 21 : 13의 오류를 해결하는 방법
    ○ static 멤버는 복사가 안되기 때문에 static -> 원본 -> class 순으로 접근해야한다
    ○ 그래서 class명 직접 치고 접근해야한다
    - 정적멤버 : 한번 생기면 잘 지워지지 않음

    - static으로 선언한거는 s 표시됨

  4. static block

    - static은 생성자를 만들어 초기화가 불가능 하다
    ○ Monitor 클래스를 보면 5,6 처럼 static 멤버를 초기화 해줄 수 있다
    ○ static block : 8 ~12 처럼 static block을 만들어 초기화를 해줄 수도 있다
    - main 클래스를 실행 했을 경우에 main클래스의 5 -> 7이 실행된후 8의 static멤버를 불러오면서 Monitor 클래스의 static block이 먼저 실행된다
    ○ Monitor 속성 호출 -> static block 실행 -> Monitor 속성 값 반환
    - 그 후에 main 클래스의 8,9,10이 실행된다

  5. final keyword


    - Person 클래스에서 final로 변수 선언이 되었다
    - 9 : person은 final로 선언 되었기 때문에 여기서 한번 초기화되면 변경이 불가능하다.
    - 14, 15 : 위에서 한번 초기화되었기 때문에 변경 불가
    - Person 클래스의 7 : static final의 경우 해당 클래스 안에서만 static block을 만들어 초기화가능하고 외부에서 절대 불가능하다
    - static final
    ○ 불변의 값으로 상수라고 하며 모두 대문자로 표기한다. 건들지 말것 ( 예: 주민번호 )
    ○ static이기 때문에 생성자도 못쓰고 final 이기때문에 값도 변경못한다
    ○ static이기만 하면 class로 호출해서 값 변경가능
    ○ final이기만 하면 생성자를 생성해서 값 변경가능

    6. Import



    - 다른 폴더에 있는 클래스를 불러와서 객체화 할 때 Import문을 쓴다
    - 16 : 다른 패키지에 있는 Calculator를 불러와서 객체화를 시켰다
    ○ 이 때 클래스 명을 입력하면서 자동완성 기능으로 불러오면 Import문이 자동으로 생긴다
    ○ 하지만 cal에 있는 메서드 들에 접근제한자가 걸려 있어서 메서드는 아무것도 못불러옴

  6. 접근제한자

    - 내부적으로만 사용할 코드가있을 경우에 사용한다.
    - public : 모든 파일 접근 가능
    - private : 자기 파일(class) 벗어날수 없음
    - default(아무것도 안쓰고 변수형 타입 바로 쓰는거) : 폴더 벗어날수 없음

    - 이렇게 특정부분의 접근을 제한하는 것을 캡슐화 라고 부른다

  7. private 외부에서 꼭 써야 하는경우

    - alt + shift + s 키를 누르면 getter setter 생성할수 있는 키워드 있다
    - get은 보여주기만 하는거, set은 수정도 가능하게 만든 것이다

    - get을 이용해 볼수 있고 set을 이용해 수정 가능

  8. static에서 같은영역 메서드 부르기

    - 7 : static영역에서 static영역 메서드를 부를 때 선언 방식
    - 11 , 12 : static 영역에서 instance 멤버로 바로 접근이 불가하기 때문에 객체화를 시켜주고 불러야 한다.

profile
개발이좋아요

0개의 댓글