[JAVA] java.base 모듈 - 각종 클래스, 리플렉션, 어노테이션
·
Programming Language/자바(JAVA)
Object 클래스JAVA의 모든 클래스는 Object의 자식 or 자손 클래스클래스를 선언할 때 extends로 상속받지 않으면 암시적으로 Object 클래스 상속 받음Object 메소드 - equals(), hashCode(), toString()equals()boolean equals(Object obj)객체의 번지(주소)를 비교하고 결과를 리턴(== 연산자와 같은 기능)String에서 equals()String에서는 객체의 번지가 아닌 내용을 주소하도록 오버라이딩되어 있다.==와 다르게 리터럴로 선언했든 객체 생성 연잔사(new)로 선언했든 상관 없이 값으로만 비교하여 반환한다.public class Main { public static void main(String[] args) { ..
[JAVA] 상속
·
Programming Language/자바(JAVA)
상속이란부모 클래스의 필드, 메소드를 자식 클래스에게 물려주는 것클래스 이름 뒤에 extends 부모클래스로 상속 받을 부모 클래스를 설정상속은 한 부모 클래스로부터만 받을 수 있음public class 자식클래스 extends 부모클래스 {}부모 생성자 호출자식 클래스의 객체를 생성하면 부모 객체가 먼저 생성된 다음 자식 객체가 생성된다.super() 메소드로 부모 클래스의 생성자를 실행하여 부모 객체 생성public 자식클래스(...) { super(); // 부모 객체 생성(생략 가능) ...}부모 클래스에 기본 생성자가 없는 경우super() 메소드에 인자를 넣음public 자식클래스(...) { super(매개값, ...); ...}매소드 오버라이딩부모 클래스의 메소드를 자..
[JAVA] 클래스 - 접근 제어자, final, static
·
Programming Language/자바(JAVA)
객체 지향 프로그래밍 특징 4가지캡슐화외부에서 객체 내부 구조(필드, 메소드)를 알지 못하고 객체가 노출해서 제공하는 필드와 메소드만 이용할 수 있는 것노출 여부는 접근 제한자를 이용하여 결정한다.상속부모 객체가 자신이 가지고 있는 필드와 메소드를 자식 객체가 사용할 수 있도록 물려주는 것상속 장점코드 재사용성↑유지 보수 시간↓다형성하나의 객체(Object) 혹은 메서드가 여러 가지 타입을 가질 수 있는 것주로 상속에서 이용한다.아래 사진과 같이 void 반환형에 인자가 없는 printClass를 상속 받아서 String 반환형에 String str 인자가 있는 printClass로 재정의하는 것을 의미한다. 재정의에는 두 가지 방법이 있다.오버라이딩슈퍼클래스를 상속받은 서브 클래스에서 슈퍼 클래스의 (..
[JAVA] 참조 타입 - 문자열, 배열
·
Programming Language/자바(JAVA)
JAVA에 데이터 타입은 크게 기본 타입과 참조 타입으로 나누어 진다.참조 타입에 대해 알아보자참조 타입(reference type)참조 타입은 기본 타입과 다르게 값 자체가 아니라 객체가 생성된 메모리 번지를 저장한다.변수들은 스택 영역에 저장되고 변수가 가리키는 객체는 힙 영역에 저장된다.메모리 사용 영역JVM이 구동되면 JVM은 운영체제에서 할당받은 메모리 영역(Runtime Data Area)을 다음과 같이 구분해서 사용한다.메소드 영역바이트코드 파일을 읽은 내용이 저장된다.힙 영역객체가 생성되는 영역이다.객체의 번지(주소)는 메소드 영역의 상수와 스택 영역의 변수를 참조한다.스택 영역메소드를 호출할 때마다 생성되는 프레임이 저장되는 영역이다.메소드 호출이 끝나면 프레임은 자동으로 삭제된다.프레임..