공부/JAVA

[Java] 클래스

Dr.thousand 2022. 9. 27. 21:05
728x90

목표

자바의 Class에 대해 학습하세요.

학습할 것 (필수)

  • 클래스 정의하는 방법
  • 객체 만드는 방법 (new 키워드 이해하기)
  • 메소드 정의하는 방법
  • 생성자 정의하는 방법
  • this 키워드 이해하기

클래스 정의하는 방법 . . . 

객체 지향 프로그래밍 : OOP (Object Oriented Programing)

객체 지향 프로그래밍이란 Object 를 지향하는 프로그래밍이라는 의미이다.

그러면 Object 와 Class , Instance는 무엇이다를까?

현실에 대입해서 설명해보자.


public class Person {
    private String name;
    private long age;
}

위에 사람이라는 클래스가 있다.

근데 현실세계에는 사람이라는 추상적인 존재는 없다.

Person jhon;

이렇게 된다면 , jhon은 객체가된다.

여기서

jhon = new Person();

이렇게 new 생성자를 통해 메모리에 등록되게 된다면 jhon은 인스턴스가 된다.


추상클래스


해당 클래스는 "동물" 클래스이다. 동물이라고만 하면 추상적이지 구체적인 존재는 아니다. 위에 설명했듯이 이것은 "클래스"이다.

하지만 abstract라는 선언이 있기때문에 해당클레스는 스스로는 인스턴스를 생성할 수 없다.

public abstract class Animal {
    String name;
    public void eat(){
        System.out.println("밥먹기");
    }
    public void attack(){
        System.out.println("공격");
    }

}

사자는 동물을 상속받는다. 그렇게되면 사자는 동물에서 선언한 메소드를 그대로 사용하거나 오버라이드하여 사용할 수 있다.

public class Lion extends Animal{
    public void sleep(){
        System.out.println("zzZ");
    }
}
Lion po = new Lion();
po.eat();

객체만드는 법

객체를 만드는법은 간단하다 new 키워드를 통해서 같은 클래스라도 여러 객체를 생성할 수있다.

Lion po = new Lion();
Lion ddol = new Lion();
Lion tory = new Lion();

다음과같이 같은 클래스라도 각 다른 인스턴스를 생성하여 사용할 수 있다.


메소드를 정의하는법

메소드를 정의하는법은 위의 Animal 클래스와 Lion클래스를 참조하면 좋을듯하다.

부모 클래스에서 이미 메소드를 정의한것을 사용할 수도있지만, 부모클래스에서 정의된 메소드를 자식클래스에서 재정의하여 사용할 수 도있다.

이를 오버로딩 , 오버라이딩이라고 부른다.


생성자

기본적으로 생성자는 매개변수를 가지지않은 것으로 가진다. 하지만 매개변수가 있어야할 경우에 생성자를 재정의하여 사용할 수 있다.

Animal(String name){
    this.name = name;
}

Animal(){
    
}

해당 클래스 생성자는 String을 매개변수를 받는 생성자와 기본생성자가 있다.


this 키워드

this 키워드란 객체 자신을 가르킨다.

Animal(String name){
    this.name = name;
}

해당 경우에도 name 이름이 중복이지만 this 키워드를 통해 객체의 변수와 매개변수를 구분한다.

728x90
반응형

'공부 > JAVA' 카테고리의 다른 글

[JAVA] 상속  (0) 2022.10.25
[JAVA]제어문  (2) 2022.09.20
[Java] 연산자  (0) 2022.09.14
자바 데이터 타입, 변수 그리고 배열  (0) 2022.09.06
[JAVA] JVM 이란 무엇이며 자바코드는 어떻게 실행되는가  (0) 2022.08.30