개발로드

☆KDT 2024-01-18★ 본문

JAVA

☆KDT 2024-01-18★

위대한개발자 2024. 1. 18. 12:35
클래스

 

▣ 변수 ▷ 배열 ▷ 구조체 ▷ 클래스

 

     int[] scores = new int [3];

     int[] : 배열 타입

     scores : 참조변수

 

☆ 절차 지향형(기능중심) 프로그램 : 순서에 맞추어 단계적으로 실행하도록 명령을 나열

★ 객체 지향형(객체 중심) 프로그램 : 객체를 구성하고 객체 단위로 프로그램을 작성

 

☆★객체 지향 요소
클래스(class) 일반 클래스
  추상(abstract) 클래스: abstract 메소드를 하나 이상 가지고 있는 클래스
인터페이스 interface: 모든 필드는 public static final(상수),  모든 메소드는 public abstract 메소드명(); -> 미완성

 

☆ 클래스의 활용

  •    파일 이름과 클래스 이름은 동일해야 한다
    • package: java 파일의 폴더(패키지) 위치
    • import : 다른 폴더(패키지) 위치의 클래스를 참조
    • [접근지정자] class 클래스명 () {
    •                  필드(=field, 멤버변수, 인스턴스 변수): 클래스의 특징(속성)을 나타내는 변수
    •                  생성자: 객체 생성 기능, 생성자의 이름은 클래스 이름과 동일해야 한다
    •                   메소드(-method): 클래스의 기능
    •                          [접근지정자] 리턴(=반환)타입 메소드이름(매개변수) {실행문장}
    •     }
    • 클래스의 멤버: 필드, 메소드
  • 클래스와 객체(인스턴스)
    • class = 설계도, 틀
    • objecgt = class의 instance, 클래스를 이용해서 만들어내는 것, 힙영역에 만들어짐(필드, 메소드)
  • 객체 만들기
    • 1) 클래스 만들기(=설계도)
    • 2) 클래스를 이용해서 객체를 생성
      • 클래스명 참조변수명 = new 생성자();
    • 3) 객체를 사용
      • 참조변수명.필드
      • 참조변수명.메소드명();
  • 객체생성
    • 객체는 생성시에 힙에 기본값을 저장하고 
    • 생성자가 힙을 초기화하고
    • 필드로 올라가서 필드내용이 힙에 초기화 된다
    • ★하지만, 필드로 가기 전에, 생성자가 초기화한 필드들은 건드리지 않는다
  • 생성자
    • 초기화 내용, 유효성 검사, 없을 시는 생략가능
    • 생성자의 이름은 클래스명과 동일해야한다
    • 생성자의 매개변수는 지역변수로 생성자를 벗어나면 메모리에서 지워진다.
    • 생성자의 매개변수 이름은 필드의 인스턴스변수의 이름과 같아도 상관없다
    • 기본생성자는 다른 다른 생성자가 하나라도 있으면 컴파일러가 자동으로 만들지 않기 때문에 기본   생성자는 생략하면 안됨
    • 반환(리턴) 타입이 없다
    • 객체 생성 및 필드 초기화를 한다
    • 모든 클래스는 반드시 생성자를 포함해야한다
    • 기본생성자 : 입력받을 매개변수(=파라미터)가 없는 생성자
  • 생성자 오버로딩(overloading)
    • 생성자 오버로딩(이름이 같고 매개변수 타입이 다르거나, 타입이 같고 매개변수의 개수가 다른것
  • this 키워드와 this() 메소드
    • 1) this 
      • 자신이 속한 클래스의 객체
      • 생략하면 컴파일러가 컴파일시 자동으로 this. 을 붙여 처리
      • 지역변수와 필드명이 구분이 어렵거나, 명확하게 필드임을 나타내고자 할 경우
      • this.필드명으로 this를 붙여필드임을 알려준다.
    • 2) this() 메소드
      • 자기 클래스 내부의 다른 생성자를 호출
      • this() 메소드는 생성자 내부에서만 사용가능하다
      • 반드시 중괄호({})안의 첫 줄에 사용해야 한다
      • 생성자의 중복성을 제거하기 위해서 사용한다

 

Student 클래스
Student 실행 클래스

 

 

 

'JAVA' 카테고리의 다른 글

☆KDT 2024-01-22★  (0) 2024.01.22
★KDT 2024-01-19☆  (0) 2024.01.19
★KDT 2024-01-17☆  (0) 2024.01.17
☆KDT 2024-01-16★  (0) 2024.01.16
★KDT 2024-01-15☆  (0) 2024.01.15