helloworld
JAVA 기초 다지기 2 본문
-Wrapper Class
- 기본자료형(Primitive type)의 데이터들에 대한 다양한 method를 제공하는 클래스 ex) 10진수를 2진수로 변환, String 을 숫자로 변환 등..
byte -> Byte double -> Double
short -> Short char -> Character
int -> Integer boolean -> Boolean
long -> Long float -> Float
- OOP (Object-Oriented Programming)
- 객체지향 프로그래밍을 의미한다. 데이터를 객체로 취급하여 프로그램에 반영한 것. 순차적으로 프로그램이 동작하 는 절차지향적인 프로그래밍 / ex) C언어 / 과 다르게 객체와 객체의 상호작용을 통해 프로그램이 동작한다.
- 코드의 재사용성이 높다.
- 코드의 변경이 용이하다(유지보수가 쉬움)
- 직관적인 코드분석이 가능하다
- 개발속도 향상
- 상속을 통한 장점 극대화
- Object( 객체 )
- Object는 OOP에서 데이터(변수) 와 그 데이터에 관련되는 동작(함수). 즉 절차, 방법, 기능을 모두 포함한 개념이다.
ex) 기차역에서 승차권을 발매하는 경우, 실체인 '손님'과 동작인 '승차권 주문' 은 하나의 객체이다. 또한 실체인 '역 무 원' 과 '승차권 발매' 도 하나의 객체이다.
- Overloading vs Overriding
- Overloading(오버로딩) --> 상속과 관련 없다.
- 한 클래스에서 같은 이름의 method를 여러개 정의하는것. (method 중복)
- 매개변수의 타입이 다르거나 개수가 달라야 한다.
- 매개변수 순서가 달라야 한다.
*return type과 접근제어자는 영향을 주지않는다.
/** 접근제어자 **/
- public, protected, default, private
-public : 모든 위치에서 참조가능
-protected : 같은 패키지 또는 다른 패키지라도 상속관계가 있을 경우에 사용 가능
- default : 같은 패키지 내에서만 사용가능 ( 적용시 실제 default라 쓰면 안됨 접근제어자가 지정되지 않으 면 자동적으로 default 접근제어를 가지게 된다.)
- private : 해당 클래스 내에서만 사용 가능
- Overriding( 오버라이딩 )
- 상속에서 나온 개념.
- 상위 클래스 (부모 클래스)의 method를 하위클래스(자식 클래스) 에서 상속받은 상태에서 본문 내용만 수정하는 것(method 재정의).
- Interface, Abstract
- Interface
-오직 추상 method와 상수만을 멤버로 갖는다. (JDK 1.8 이상은 static method와 default method도 가능.)
- implements 키워드 사용 ex) public class Test implemets TestIm{}
- 상속 관계가 없는 클래스간 서로 공통되는 로직을 구현하여 쓸 수 있도록 한다.
- extends는 하나의 클래스만 상속 가능하나 interface는 다중 구현이 가능하다.
- abstract
- 추상 method를 하나 이상 가진 클래스
- 자신의 생성자로 객체 생성 불가능
- 하위 클래스를 참조하여 상위 클래스의 객체를 생성
- 상위 클래스의 자료형으로 하위 클래스를 제어하기 위해 사용
- interface vs abstract
- 공통점
- new 연산자로 인스턴스 생성 불가
- 프로토타입 (미완성 버전, 시스템의 초기 모델)만 있는 method를 갖는다.
- 사용하기 위해서는 하위클래스에서 확장(extends)/ 구현 (implements)해야 한다.
- 차이점
- 사용하는 키워드가 다르다.
- abstract는 완성된 method를 사용할수 있지만, interface는 추상 method와 jdk 1.8이후 부터는
static, default method만 선언 가능하다.
-Static의 의미(정적메모리)
- 클래스가 로딩될 때 메모리 공간을 할당하는데 처음 설정된 메모리 공간이 변하지 않음을 의미
- 객체를 아무리 많이 만들어도 해당 변수는 하나만 존재(객체와 무관한 키워드)

'자바기초' 카테고리의 다른 글
| JAVA 기초다지기 4 (0) | 2023.07.08 |
|---|---|
| JAVA 기초다지기 3 (0) | 2023.07.08 |
| JAVA 기초 다지기 (0) | 2023.07.08 |