본문 바로가기
(JAVA)자바/(JAVA)자바 문법

(JAVA)자바 객체지향 언어 개념 중요 부분 총정리 part3

by 공부가싫다가도좋아 2021. 4. 28.
반응형

자바 객체지향 언어 개념 중요 부분 총정리 part3


1. this() vs super()

this() 는 같은 클래스의 다른 생성자를 호출하는데 사용.

super() 는 조상의 생성자를 호출하는데 사용.

public class Text {
	public static void main(String[] args) {
		Grade2 g = new Grade2(1,2,3);
		System.out.println("x=" + g.x + ",y=" + g.y + ",z=" + g.z);
	}
}

class Grade{
	int x,y;
	Grade(int x, int y){
		this.x=x;
		this.y=y;
	}
}

class Grade2 extends Grade{
	int z;
	
	Grade2(int x, int y, int z) {
		super(x, y);
		this.z=z;
	}
}

결과

x=1,y=2,z=3


2. static import 문

static멤버를 호출할 때 클래스 이름 생략 가능.

import static java.lang.System.out; //System.out을 out만으로 참조가능 
import static java.lang.Math.*;  //Math 생략 가능.

public class Text {
	public static void main(String[] args) {
		//System.out.println(Math.random());
		out.println(random());  //System생략, Math생략 
		
		//System.out.println(Math.PI);
		out.println(PI);  
	}
}

3. 제어자(modifier)

접근 제어자 : public, protected, (default), private  //중요

그 외 : static, final, abstract, native, transient, synchronized, volatile, strictfp

* default는 생략할 수 있다.


4. 캡슐화 & 접근제어자

* private으로 지정하여 외부에서 접근하지 못하도록 막는 것이 캡슐화에 해당한다.

접근 제어자 사용 이유 

1. 외부로부터 데이터 보호하기 위해

2. 외부에는 불필요한, 내부적으로만 사용되는, 부분을 감추기 위해.

더보기

* 프로젝트를 많이 만들다보면, 이런 일이 발생할 경우가 많다. 프로젝트 내에서 public을 많이 사용하여, 다른 프로젝트에서 똑같은 이름의 객체를  사용하여 오류가 나는 경우가 있다는 것이다. 물론, 같은 패키지 내의 public을 우선시 하지만, 위험 방지를 위해 public 만 사용하기 보다는 다른 접근 제어자를 적절하게 사용하는 것이 좋다.


5. 다형성(polymorphism)

다형성은 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 하는 것이다.

*다형성에서는 조상타입의 참조변수로 자손타입의 인스턴스를 참조할 수 있다.

하지만 자손타입의 참조변수로 조상타입의 인스턴스를 참조할 수 없다.

public class test {
	public static void main(String[] args) {
    //조상타입참조변수 변수명 = new 자손타입 인스턴스(객체)
		 Phone p = new Smartphone();
		 System.out.println(p.number);
		 p.call();
		 
//		 Smartphone s = new Phone 에러!! 
//		 System.out.println(p.text);  에러!!
//		 p.send();  에러!!
	}
}

class Phone{
	int number;
	
	void call() {number++;}
}

class Smartphone extends Phone{
	String text;
	void send() {}
}

 


2021.04.26 - [(JAVA)자바/(JAVA)자바 문법] - (JAVA)자바 객체지향 언어 개념 중요 부분 총정리 part1

 

(JAVA)자바 객체지향 언어 개념 중요 부분 총정리 part1

자바 객체지향 언어 총정리 part1 1. 객체 지향 언어란? - oop(object-oriented-programming) : 객체지향 언어 - 객체지향 언어 특징은 크게 4 부분으로 나눌 수 있다. *캡슐화, 상속, 추상화, 다형성에 대한..

eunhee-programming.tistory.com

2021.04.27 - [(JAVA)자바/(JAVA)자바 문법] - (JAVA)자바 객체지향 언어 개념 중요 부분 총정리 part2

 

반응형

댓글