객체지향에서 정보은닉이란 사용자가 굳이 알필요없느 정보는 사용자로부터 숨겨야한다는 개념
자바에서는 이러한 정보은닉을 위해 접근제어자를 제공함
클래스 외부로부터 직접 접근을 허용하지않는 멤버를 설정하여 정보 은닉을 구체화할수있디
1.private
2.public
3.default
4.protected
private
같은 클래스내에서만 사용 가능
외부 클래스에서는 직접 접근 불가능
public
외부 클래스까지 공개 가능
해당 객체를 사용하는 프로그램 어디에서나 직접 접근가능
default
접근 제어자의 기본값, 지정되않으면 자동으로 default를 사용하게 됨.
protected
부모 클래스에 대해서는 public처럼 취급
외부에서는 private 멤버처럼 취급
객체를 정의하고 만들어 내기위한 설계도 또는 틀
객체를 만들어내기 위한 변수와 메서드 들이 존재.
클래스에 선언된 모양 그대로 생성된 실체를말함
클래스의 인스턴스 라고 부름
클래스를 통해서 구현해야할 대상이 실제로 구현된 실체를 말함
같은 이름의 메서드를 중복하여 정의하는것
조건
1.메소드의 이름이 같아야함
2. 메소드의 매개변수개수 또는 타입이 달라야한다
void display(int num1) // 전달받은 num1을 그대로 출력함. void display(int num1, int num2) // 전달받은 두 정수의 곱을 출력함. void display(int num1, double num2) // 전달받은 정수와 실수의 합을 출력함.력하세요
상속 관계에 있는 부모클래스에서 이미 정의된 메소드를 자식 클래스에서 재정의
class Parent { void display() { System.out.println("부모 클래스의 display() 메소드입니다."); } } class Child extends Parent { void display() { System.out.println("자식 클래스의 display() 메소드입니다."); } } public class Inheritance05 { public static void main(String[] args) { Parent pa = new Parent(); pa.display(); Child ch = new Child(); ch.display(); Parent pc = new Child(); pc.display(); // Child cp = new Parent(); } }
조건
1. 메소드의 동작만을 재정의하는것으로 선언부는 기존메서드와 완전히같아야한다
2.부모클래스의 메소드보다 접근 제어자를 더 좁은 범위로 변경가능
3.부모클래스의 메소드보다 더 큰 범위의 예외를 선언할수없다
정수,실수,문자,논리 리터럴을 저장하는 타입
byte, char, short, int, long
객체의 지변을 참조하는 타입
배열,열거,클래스,인터페이스를 이용해 선언된 변수에 있는 메모리 주소값을 갖게된다
주소를 통해 객체를 참조하는 타입
메서드 호출시에 사용되는 인자를 값이 아닌 주소를 넘겨줌으로써
주소를 참조하여 데이터 변경이 가능
메서드 호출시 사용되는 인자의 메모리에 저장되있는 값을 복사하여 보냄
기본타입에 해당하는 데이터를 객체로 포장해주는 클래스
각각의 타입에 해당하는 데이터를 인수로 전달받아
해당값을 가지는 객체를 만들어준다
java.lang 패키지에 포함되어 제공
참고 및 출처:
http://www.tcpschool.com/