객체 : 연관된 메소드와 그 메소드가 사용하는 변수들을 분류하고 그룹핑하는것의 대상
은닉화, 캡슐화 : 둘다 같은말로써, 내부의 동작 장법을 모르더라도 사용자는 사용할 수 있도록 만드는것
인터페이스 : 부품을 서로 교환할 수 있도록 규격을 만들어 놓는것
클래스 : 연관되어 있는 변수와 메소드의 집합
- 클래스 : 설계도
- 인스턴스 : 제품
Calculator c1 = new Calculator();
-> Calculator = 설계도
-> c1 = 제품
-> 데이터타입 = 사용자정의타입
변수 : 상태
메소드 : 행동
-> 하나의 클래스를 바탕으로 서로 다른 상태를 가진 인스턴스를 만들면 서로 다른 행동을 하게 된다는것.
-> -> 하나의 클래스가 여러개의 인스턴스가 될 수 있다는 점이 객체 지향이 제공하는 가장 기본적인 재활용성
객체의 구성원 : 변수, 메소드
static을 맴버(변수,메소드) 앞에 붙이면 클래스의 맴버가 된다.
메소드 : 객체의 동작
입력과 출력 : Javascanner 을 이용한 입력, 출력
객체 지향 프로그래밍 : 설계, 부품화, 캡슐화, 인터페이스
1) 설계 : 추상화하여 설계
2) 부품화 : 레고조립처럼 부품으로 만들어서 조립
3) 캡슐화(은닉화) : 부품이 어떻게 만들어졌는지 모르더라도 사용법을 알면, 사용할 수 있도록 내부의 동작방법을 숨기고 사용방법만 노출
4) 인터페이스 : 부품과 부품을 서로 교환할 수 있도록 만들어 놓는 틀(껍데기)
클래스와 인스턴스 그리고 객체
1) 클래스 : 연관되어 있는 변수와 메소드의 집합
2) 인스턴스 : 클래스는 설계도, 인스턴스는 제품
3) 객체 : 변수는 상태, 메소드는 행동
클래스 맴버와 인스턴스 맴버 : 지역변수, 전역변수와 비슷한 맥락
유효범위 : 지역변수, 전역변수와 비슷한 맥락
초기화와 생성자
1) 생성자 : 어떤 일을 시작하기 전에 준비를 하는것
※ 특징 : 생성자의 이름은 클래스의 이름과 동일하다, 값을 반환하지 않는다.
상속 : 재활용성을 위해 물려주는것
상속과 생성자 : super는 상위클래스를 가리키는 키워드, super 사용법
오버라이딩 : 상속받은 메소드를 재정의
오버로딩 : 인자수에 따라 실행방법을 다르게
클래스 패스 : 클래스 경로에 관해서
패키지 : 패키지 경로 및 특정 패키지 로드 방법
API와 API 문서 보는 법 : 자바 시스템을 제어할 수 있도록 자바에서 제공하는 명령어를 의미한다. 예를들면 System.out.println(""); 같은거
접근 제어자 : public는 제일많이 오픈, private는 제일많이 닫힘
abstract : 추상 메소드, 예를 들면
public abstract int a();
이런식으로 메소드를 선언만하고 이것을 상속받고 오버라이딩하여 사용이 가능
final : 상수를 지정, PI:3.14 같은거, 변하지 않는수
인터페이스 : 껍데기, 특정 메소드를 사용하도록 강제
다형성 : A obj = new B(); 같은거
예외 : try, catch로 예외처리, throw 또는 throws 같은것으로 던질 수 있음
Object 클래스 : 모든 클래스는 Object 를 상속받은 상태임.
예를들면 class O extends Object {} 처럼 항상 상속 받으나 extends Object 부분은 숨겨진거
상수와 enum
상수 : 변하지 않는 수, 한번 정의하면 그 값이 안바뀜
enum : 많은곳에서 사용하던 디자인 팬턴을 자바언어가 채택해서 문법으로 단순화시킨것
참조 : 복제는 복사를 의미함, 참조는 symbolic link 같은거, 바탕화면 바로가기같이 원본이 바뀌면 같이바뀜
제네릭 : 클래스 내부에서 사용할 타입을 외부에서 지정하는 기법
class Person<T> {
public T info;
}
이런식으로 < > 를 써서 사용
Collections Framework : 배열은 처음 갯수를 지정하면 수정할 수 없지만. 이것은 수정가능, 하지만 사용하는 문법이 배열과 조금 다름
'백엔드 언어' 카테고리의 다른 글
쓰레드 (0) | 2017.03.24 |
---|---|
커넥션 풀 (0) | 2017.03.24 |
starting tomcat v8.0 server at localhost has encountered a problem (0) | 2017.03.24 |
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path (0) | 2017.03.24 |
HTTP 404 error (0) | 2017.03.24 |