Object 클래스 -- 모든 클래스의 최상위 클래스
1. java.lang 패키지
1)프로그래밍 시 import하지 않아도 자동으로 import 됨.
2)많이 사용하는 기본 클래스들이 속한 패키지.
3)String, System, Math, Integer...
2. 모든 클래스는 Object 클래스를 상속받음.
1)모든 클래스는 Object클래스의 메서드 중 일부를 재정의해서 사용할 수 있음.
2)컴파일러가 extends Object를 추가함.
- ex) class Book => class Book extends Object
3. toString( ) 메서드
1)객체의 정보를 String으로 바꾸어서 사용할 때 쓰임.(재정의)
2)String, Integer 클래스는 이미 재정의되어 있음.
4. equals( ) 메서드
1)두 인스턴스 주소 값을 비교하여 true/false 반환.
2)재정의하여 두 인스턴스가 논리적으로 동일함의 여부를 구현함.
3)인스턴스가 다르더라도 논리적으로 동일한 경우 true를 반환하도록 재정의할 수 있음.
5.hashCode( ) 메서드
1)hashCode( )는 인스턴스의 저장 주소를 반환함.
2)힙메모리에 인스턴스가 저장되는 방식이 hash방식.
3)두 인스턴스가 같다는 것은?
-equals( )
-hashCode( )
:논리적으로 동일함을 위해 equals( )메서드를 재정의,
hashCode( )메서드도 재정의하여 동일한 hashCode 값이 반환되도록 함.
6. clone( ) 메서드
1)객체의 원본을 복제하는데 사용하는 메서드.
2)해당 클래스의 clone( )메서드를 사용하는 것을 허용한다는 의미로
cloneable 인터페이스를 명시해 줌.
3)OOP의 캡슐화, 정보은닉, 추상화 관점에서 위배될 수 있음.
String 클래스
1. String 선언
-String str1 = new String("abc");
-String str2 = "abc";
1) 힙 메모리에 인스턴스로 생성되는 경우 (1)와 ==>생성될 때마다 다른 주소값을 가짐.
상수 풀(constant pool)에 있는 주소를 참조하는 두 가지 방법이 있음(2).
=>모두 같은 주소값 가짐.
2)한 번 생성된 String 객체는 불변함.(immutable)
3)String을 연결하면 기존의 String에 연결되는 것이 아닌 새로운 문자열이 생성됨.
2. StringBuilder, StringBuffer
1)내부적으로 가변적인 char[ ]를 멤버 변수로 가짐.
2)문자열을 여러번 연결하거나 변경할 때 사용하면 유용함.
3)새로운 인스턴스를 생성하지 않고 char[ ]를 변경함.
4)StringBuffer는 멀티쓰레드 프로그래밍에서 동기화를 보장.
5)단일 쓰레드 프로그램에서는 StringBuilder 사용.
Class 클래스
1. Class 클래스
1)자바의 모든 클래스와 인터페이스는 컴파일 후 .class 파일이 생성됨.
2)Class 클래스는 컴파일된 class 파일을 로드하여 객체를 동적으로 로드하고.
정보를 가져오는 메서드가 제공됨.
3)Class.forName("클래스 이름") 메서드로 클래스를 동적으로 로드함.
-실행(runtime)중에 데이터 타입을 binding하는 방법.
-동적 로딩 시 오류가 발생하면 프로그램의 심각한 장애가 발생 가능.
(컴파일 시에 타입이 정해지지 않으므로)
4)reflection 프로그래밍
-Class 클래스를 사용하여 클래스의 정보(생성자, 변수, 메서드) 등을 알 수 있고
인스턴스를 생성하고 메서드를 호출하는 방식의 프로그래밍.
Wrapper 클래스
1. Primitive 자료형과 Wrapper 클래스
1)정의 : 각 기본 데이터형별로 기본 데이터에 관계된 기능을 미리 만들어 제공하는 클래스
2)종류
boolean Boolean
byte Byte
char Character
short Short
int Integer
long Long
float Float
double Double
3)ArrayList 등 객체만을 핸들링하는 기능을 사용하기 위해.
'📒 education archive > 🎀JAVA' 카테고리의 다른 글
[국비학원 기록/자바] 람다식, 스트림 (0) | 2021.10.19 |
---|---|
[국비 학원 기록/자바] 컬렉션프레임워크 ArrayList, HashMap, LinkedList, ... (0) | 2021.10.18 |
[국비 학원 기록/자바]객체지향(OOP) 09.인터페이스, 인터페이스의 여러 가지 요소(default , static, private 메서드), 다중 상속 (0) | 2021.10.13 |
[국비 학원 기록/자바]객체지향(OOP) 08.추상클래스, 인터페이스 (0) | 2021.10.13 |
[국비 학원 기록/자바]객체지향(OOP) 07.다형성, 형변환, Upcasting , Downcasting, 매개변수의 다형성 (0) | 2021.10.11 |