언어/Java 4

[Java] interface, exception, collections

interface 선언: interface (keyword) interface는 class의 특별한 케이스이다. - field는 존재할 수 있다. interface라고 명시된 케이스에서 필드는 무조건 상수로 표현 (public static final 이 붙음) public 어디서든 접근 가능, static 인스턴스 없이 사용 가능, final 상수 필드 - method 존재 인터페이스의 모든 method는 abstract method (선언만, 정의x) ( public abstract 가 붙음) abstract method가 있어서 abstract 하기 때문에 인스턴스를 만들 수 없음 대신 interface를 구현해서 class를 만듬 - 다중 구현(implement)이 가능, 클래스는 다중 상속(ext..

언어/Java 2021.06.25

[Java] this, super, overriding, final, 추상 클래스, 다형성, dynamic binding

System.out.println() System: class의 일종 (=java.lang.System) api로 제공되는 것, java.lang라는 패키지 안에 있는 System 이라는 클래스 java.lang을 생략한다는 것 = import java.lang.System; 이 생략되어 있다는 얘기 ===> 컴파일러가 삽입해줌 "."은 연산자, 앞에는 class 혹은 instance를 가리키는 reference, 뒤에는 field/method out: static field (instance가 없기 때문) System.out 이 . 앞에 있기 때문에 class 혹은 instance이란 걸 알 수 있다. (instance임, 컴파일러가 알아서 만듬) println()은 System.out이라는 insta..

언어/Java 2021.06.25

[Java] 접근 제어자, 상속, is-a관계

Access Modifier (접근 제어자) - package 와 관련 - 총 4종류의 access modifier 존재 1. public (keyword로 존재) 접근에 제한이 없다, 패키지와 상관없이 class가 public이더라도, constructor가 public이 아니면, class에만 액세스 가능하고 다른 패키지에서 인스턴스 생성 불가(생성자 호출이 불가능해서) 따라서 기본 constructor(constructor를 코드에 명시하지 않은 경우 자동 삽입되는)는 public형임. 2. protected (keyword로 존재) 3. default (keyword로 사용x, 다른 키워드가 없으면 기본 적용) 같은 패키지 내에서는 자유롭게 access 가능, 다른 패키지에서는 access 제한 ..

언어/Java 2021.06.25

[Java] Java란?

구조적 프로그래밍과 객체지향적 프로그래밍 1. 구조적 프로그래밍: - 기능별로 나누어서 모듈을 통해 프로그래밍한다. - 장점: 빠르다, 구현이 쉽다 - 단점: 유지보수가 비싸다 2. 객체지향적 프로그래밍 - 현실세계를 묘사해서 프로그래밍한다. - 장점: 빠른 변화에 빠르게 적응할 수 있다. 객체지향적 프로그래밍 어떻게 하면 현실 세계를 묘사할 수 있을까? 1. 구성요소 파악 ex) 은행: 은행직원, 지점, 은행업무 등등 만약 구조적프로그래밍(기능별 분류) 이었다면 은행업무: 예금>입,출금/ 대출>담보,신용 2. 구성요소 간 데이터 흐름 파악 구성요소를 어떻게 프로그램으로 표현하는가? 클래스를 이용해서 현실과 비슷하게 만든다. 즉, 구성요소의 상태(데이터 값)와 행위(행동) 파악해 이를 변수와 메소드로 만..

언어/Java 2021.06.25