[Java알고리즘] Ch2-2. 클래스

🐷Jinie (juniorDeveloper)·2020년 10월 4일
0

Algorithm

목록 보기
4/27

1. 클래스 (Class)

  • 임의의 데이터형을 자유로이 조합하여 만들 수 있는 자료구조

1-1. 클래스 본체와 멤버

  • 클래스 본체에서는 다음과 같은 내용을 선언할 수 있다.
    : 멤버 (필드, 메소드, 중첩 클래스, 중첩 인터페이스) / 클래스 초기화/ 인스턴스 초기화/ 생성자
  • 필드/ 메소드/ 생성자를 선언할 때 public/ private/ protected 을 지정할 수 있다.
  • 메소드/ 생성자는 다중으로 정의 할 수 있다.
  • final로 선언한 필드는 한 번만 값을 대입할 수 있다.
  • 생성자는 새로 생성한 인스턴스의 초기화를 위해 사용된다.

    ❗️오버로드 : 메소드나 생성자를 정의할 때 형식은 다르지만 같은 이름을 붙이는 것.

1-2. 클래스의 종류

  • 공개 클래스 :
    public class 다른 패키지에서 사용할 수 있는 공개클래스
  • final 클래스 :
    클래스 접근제한자 final을 붙여 선언한 클래스로 서브 클래스를 가질 수 없다.
    새로운 클래스를 상속할 수 없다.
  • 파생 클래스 :
    클래스 A를 상위 클래스 (direct superclass)로 선언할 때 extends A를 추가해야한다. 이떼 선언한 클래스는 클래스 A의 직접 서브 클래스 (direct subclass)가 된다.
    ❗️ 클래스 선언에 extends가 없는 클래스의 상위 클래스는 'Object'
    'Object'는 상위 클래스를 갖지 않는 유일한 클래스.
  • 추상 클래스 :
    abstract를 붙여 클래스를 선언한다. 추상클래스형은 불완전해서 인스턴스를 만들 수 없다.
  • 중첩 클래스 :
    클래스 또는 인터페이스 안에서 선언한 클래스.
    1. 멤버 클래스 (member class) :
      선언이 다른클래수 똔ㄴ 인터페이스 선언에 둘러쌓인 클래스
    2. 내부 클래스 (inner class) :
      명시적, 암묵적으로 정적으로 선언되지 않은 중첩클래스이다.
      정적초기화나 멤버 인터페이스 선언을 할 수 없다.
    3. 지역 클래스 (local class) :
      이름이 주어진 내부 클래스, 어떤 클래스의 멤버도 될 수 없다.

// 클래스 정의
class powerGet {
    // 속성(변수) 정의
	String name;
	int power;
	int defense;
    // 생성자 정의
	public powerGet(){
	}
    // 메소드 정의
	public void powerUp(){
		power += 5;
	}
	public void powerDown(){
		power -= 5;
	}
	public int getCurrentPower(){
		return power;
	}
}
profile
ᴘᴇᴛɪᴛs ᴅᴇ́ᴠᴇʟᴏᴘᴘᴇᴜʀ. ᴘʀᴏɢʀᴀᴍᴍᴀᴛɪᴏɴ = ᴘʟᴀɪsɪʀ 💕

0개의 댓글