011. 클래스 사용과 메서드

Cornchip·2022년 9월 28일
0

bitcamp

목록 보기
11/11
post-thumbnail

목차
1. 메서드
2. 클래스사용
1) 사용
2) 데이터 접근 범위
3) 생성자



7/13

  • 도구함(클래스)의 도구(메서드)를 쓰기 위한 준비

    • Math.abs(값)
      abs는 별도의 데이터를 준비할 필요없이 바로 사용가능한 도구다.
      • static mathod
      • 이런 도구는 도구함 이름으로 바로 사용할 수 있다.
  • 값 ::

    • 도구를 실행하는데 필요한 값 = parameter = argument
    • Date.getYear()
      • 이 도구는 그냥 사용할 수 없다.
      • Date도구함을 이용해서 데이터를 준비한 후에 사용할 수 있다.
      • instance method
  • 인스턴스 메서드 사용하려면

    1. 도구 사용전 데이터 준비(설정) ::
      Date d = new Date();
      new : 도구함의 도구를 쓸 수 있도록 설정하기
      d : 설정된 데이터를 가리키는 변수
    2. 설정된 정보를 가지고 도구 실행
      d.getYear()
      d : 설정된 정보를 가리키는 변수 ( = 참조변수 = reference)

7/14

  • 메서드 :: 코드를 유지보수하기 쉽게 기능 단위로 분리하기

void processBoardList() {....}

processBoardList : 메서드명 : 행위를 나타내는 동사구 형태의 이름
() : 파라미터 목록 >>> 작업 수행에 필요한 데이터를 받을 변수
{....} : 메서드 몸체(=body) >>> 작업을 수행하는 코드
void : 리턴 타입 >>> 작업 완료후 결과 값의 리턴 여부
void : 값을 리턴 안함
그 외 다른것 : 리턴하는 값의 타입

  • 메서드에 묶인 코드 실행하기 = 메서드 호출 = 메서드 call
  • 명명 : 맨첫글자 소문자, 그 뒤 단어 첫글자 대문자

변수 = 메서드명(값, 값, ...);

메서드명 : 실행할 메서드
값,, ... : 메서드 파라미터에 전달할 값 = argument
변수 : 메서드가 값을 리턴할 경우, 그 값을 받을 변수 (값을 받지 않아도 된다.)

  • 클래스 사용 : 역할에 따라 메서드를 분류하기
    • 명명 : 명사, 명사구, 가끔 형용사 형태로 (동사형은 x)
    • 단어마다 전부 대문자시작

7/15


사용자 정의 데이터 타입
  • 클래스 문법
    1. 메서드를 분류
    2. 데이터 타입 정의
  • 새 데이터 타입 정의
class Board {
        int no;
        String title;
        String content;
    }
new Board()

Board설계도에 따라 변수를 준비한다.
마치 배열메모리처럼(?)
값 할당 : b.no = ~~;


Board b1 = new Board();
b1.no = 100;

// b1배열의 0번째가 아니라
// b1배열의 no번째에 100을 넣어라.

7/19


  • 클래스 레벨

    • 중첩 클래스 (2 category로 나뉨)
      1. non-static nested class = non static inner class
      2. static nested class != static inner class
  • java.lang. 패키지의 클래스는 몽땅 생략해도 된다.

  • 그 외 모든 다른 패키지의 클래스는 패키지명을 명시하지 않으면 컴파일 오류 발생함.

  • !!! java.lang.*. 아래의 패키지 클래스, 즉 하위 패키지의 클래스는 생략할 수 없다!!


  • 클래스 문법 활용 예
    • 사용자 정의 데이터타입을 만드는 용도
Score s1 = new Score();
    s1.name

s1객체의 name 필드 = s1의 name 필드

  • static 메서드와 인스턴스 메서드
    Score.compute(s1)
        // Score : 클래스명
        // s1 : 데이터가 있는 인스턴스 주소
    
    
    s1.compute()
        // s1 : 인스턴스 주소

  • 생성자 (constructor)
new 연산자를 이용하여 인스턴스를 만들 때 자동으로 호출되는 특별한 문법의 메서드
    - 메서드 명은 클래스 이름과 같아야 한다.
    - 리턴 타입은 없다.
    - 오직 new 명령을 실행할 때 호출할 수 있다. 나중에 따로 호출할 수 없다.

7/22

데이터 접근 범위
- public : 모두 공개
- protected : 같은 패키지 + 자식 클래스
- (default) : 같은 패키지
- private : 그 멤버를 가지고 있는 클래스 안에서만 접근 가능

7/25

    void m4(int value) {
      // 로컬 변수의 이름이 인스턴스 이름과 같을 경우 
      // this를 붙이지 않으면 로컬 변수를 가리킨다.
      value = 200; // 로컬 변수이다.

      this.value = 300; // 인스턴스 변수이다.
      // 따라서 로컬 변수가 아닌 인스턴스 변수를 가리키고 싶으면 this를 붙여야 한다.
    }

  • 인스턴스를 만든 후에 즉시 생성자를 호출할 수 있다. 그 외에는 호출 불가능하다.

7/27

  • Object : 객체라면 기본적으로 가져야할 필드와 메서드.

  • Object 의 메서드 ::

    • equals : 인스턴스 주소가 같은지 비교
    • toString : 클래스명@식별번호 리턴
    • hashCode : 식별번호 리턴
  • Object클래스를 상속받은 클래스인 Member~~

    • Member 인스턴스를 통해 호출하는 메서드는 모두 Object 클래스의 메서드이다.
  • Object obj = new String();

    • 이라고 썼으면 obj.~~ 를 할 때 Object클래스 의 메서드 사용가능.
    • String의 메서드 사용 불가능
    • 쓰고 싶으면 obj = (String) obj; 라고 형변환 해줄것.
profile
cornchip

0개의 댓글