Java 클래스 사용

클래스 사용

class Exam {}

  • class + 새 데이터 타입 이름
  • 무조건 대문자로 시작한다
  • 여러 단어가 결합된 이름인 경우 각 단어의 시작도 대문자로 작성한다
  • 가급적 명사형으로 적는다

  1. 클래스 정의
class Score {

  new 명령을 실행할 때 생성
  -------------------------
      String name;
      int kor; 
      int eng;     인스턴스 필드 field
      int math;
      int sum;
      float aver;
  -------------------------   
} 
  1. 레퍼런스 선언
    • Score obj; <— score의 인스턴스 주소를 저장할 변수(reference)
    • 여기서 obj는 reference 임으로 객체의 주소만 넘겨받는다
    • 메모리는 준비 안된상태 따로 new 명령을 사용해야한다
  2. 인스턴스 생성
    • obj = new Score(); <— 설계도에 따라 변수를 만드는 명령
  3. obj 인스턴스(객체)의 필드 값 설정
    • obj.name = "홍길동"; <— obj는 객체가 아님 (reference)

필드 접근

Score s1 = new Score();
s1.name = "홍길동";
  • 메모리를 만들고 메모리 주소를 받아서 메모리 주소를 통해 필드에 접근
  • 변수를 만들고 변수주소를 받아서 변수 주소를 통해 필드에 접근
  • 인스턴스를 만들고 인스턴스 주소를 받아서 인스턴스 주소를 통해 필드에 접근
  • 객체를 만들고 객체 주소를 받아서 객체 주소를 통해 필드에 접근

리팩터링 Refactoring

eclipse com.eomcs.oop.ex02.test
0) 낱개 변수 사용
1) 성적 데이터를 저장할 사용자 정의 데이터 타입을 만든다.
2) 리팩토링: 메서드 추출(extract method), static nested class
3) 리팩토링: 메서드 추출(extract method) = 한 개의 메서드는 한 개의 기능을 수행해야 한다.
4) GRASP(General Responsibility Assignment Software Patterns) 패턴
5) 인스턴스 메서드: 인스턴스 주소를 받는 더 쉬운 문법
6) 패키지 멤버 클래스: 여러 곳에서 사용할 클래스라면 다른 클래스에 안에 두지 말고 패키지의 멤버 클래스로 둬라
7) 클래스를 역할에 따라 패키지로 분류
8) 생성자 도입: 인스턴스를 생성할 때 값을 초기화시키는 특별한 메서드

Categories:

Updated:

Leave a comment