추상화를 통해 원을 만들어보겠다. 우리가 정의한 이 '원'은 반지름을 정의할 수 있고, 면적을 알아낼 수 있다.
[EX1]
class Circle { //원의 추상화
double r; //반지름
public Cirlcle(double a) {
r = a;
}
public double getArea() { //면적
return r * r * 3.14;
}
}
main 메서드를 통해서 원에게 실제로 값을 부여(메모리를 할당)해보겠다.
- new를 사용하여 원에게 5.0이라는 값을 전달하면, 메모리가 할당되며 반지름이 5.0인 '원'이 생성된다.
Circle 클래스의 생성자를 통해 double a의 값이 double r로 전달된다.
[EX2]
public class CircleArea2 {
public static void main(String args[]) {
Circle c = new Circle(5.0);
System.out.println(c.r); //5.0
System.out.println(c.getArea()); //78.5
}
}
그렇기에 c.r을 했을 경우 5.0의 값을 읽어올 수 있다.
객체의 사용
객체 변수와 점(.) 연산자를 사용하여 클래스의 멤버에 접근할 수 있다.
- 객체가 소유하는 데이터(인스턴스 변수)를 읽거나 쓰기 //[EX2] 5line
- 객체를 이용하는 메소드(인스턴스 메소드)를 호출하기 //[EX2] 6line
클래스 정의에 생성자가 없다면 컴파일러가 기본 생성자default constructor를 만든다.
public Cirlce() {}
위의 CirlceArea 클래스에서 4-5line의 생성자 코드가 없었다면 위의 생성자가 기본으로 작성되었을 것이다.
상속과 생성자
class A {} 를 만들었을 때 이를 class B의 자식으로 만들 수 있다.
class B extends A {}
이 때 class B는 classA의 데이터도 상속을 받게된다.
상속받은 데이터의 초기화는 부모클래스의 생성자를 사용한다.
이를 하는 것이 super();이다, 부모 클래스의 기본 생성자를 호출한다.
생성자 몸체의 첫 줄에 부모 생성자의 명시적 호출이 없다면 super();가 자동으로 들어가게된다.
public Circle() {
super();
}
'┝ 개발 언어 > ┎ JAVA' 카테고리의 다른 글
[file] 엑셀 파일 업로드 / 다운로드 (0) | 2022.06.21 |
---|---|
예외처리 : Exception Handler (0) | 2022.05.11 |
restTemplate (0) | 2022.05.11 |
전자카드 서버 동시성 제어 (0) | 2022.04.10 |
java proxy (0) | 2022.03.14 |