클래스 정보가 메모리에 올라간다.
레퍼런스 타입 생성자
--- ----
Ball b1 = new Ball();
---
레퍼런스 변수 => 리모컨
인스턴스를 생성하려면 반드시 레퍼런스 변수가 있어야함
new : 인스턴스 생성을 위한 연산자
new Ball() -> Ball 인스턴스(객체)를 메모리에 생성한다.
객체는 관련된 것을 잘 모아서 가지고 있는것
추상화 - 중요한 것은 높이고 불필요한것은 줄이는것
객체는 응집도가 높아야한다!
- 관련된 것들을 잘 모아서 가지고 있어야한다.
객체는 추상화가 잘되야한다!
- 중요한 것은 높이고 불필요한 것은 없애야 한다.
객체지향은 재사용성이 높다.
기본형 타입 - java에서 객체가 아닌 애들, 값을 가진다. 참조 x
boolean, short, int, long, float, double
어떻게 저장되는지 알아내라
자료의 최소 단위 : 1byte. bit에 저장하는 방법은 없다.
int value; 를 아래와 같이 수정한다.
접근제어자 : 신호등을 세우는 것, 필드는 직접 접근하지 않는다.
private int value; 외부에서는 직접 변수에 접근할 수 없다.
메소드를 통해서만 가능
상속 ?
일반화 시킨다 - 걸으면 동물 뭐 이런거?
부모클래스 : 일반화 시킨 특성을 모아놓은 클래스?
음식, 동물, 자동차
실체가 없는, 일반화 시키기 위해 만들어진 단어들 :
--> 부모 클래스이면서 추상클래스
추상클래스는 인스턴스가 될 수 없다.
인터페이스(interface) ?
- 기능을 정의한다.
- 소프트웨어를 만든다면 당연히 기능부터 정의한다.
- 기능의 정의가 구현보다 먼저 있다.(당연히)
인터페이스를 먼저 만드는 것 보다는 이미 만들어진 것을 사용해보자.
개발자라면 꼭 알아야할 자료구조! 컬랙션 프레임워크.
컬렉션 프레임 워크에서 제공하는 인터페이스에 대해 알아보자.
api : 설명서 보고 더 공부
1.Collection
- 여기에 자료가 있다를 표현한다.
- 중복을 허용, 순서는 기억못한다.
- 물건을 막 집어넣고 몇 번째 꺼 꺼내라 하면 못 꺼냄
- add(E) : 추가 기능
- int size() : 몇 건 들어가 있지?
2.Iterator - 자료구조에서 값을 꺼낼때 사용
- boolean hasNext() - 꺼낼것이 있느냐 없느냐?
- E next() - 꺼내다.
3.Set - 중복을 허용하지 않는다. 순서는 기억 못한다.
- boolean add(E) - 추가
4.List - 순서를 기억한다.
- E get(index) - 특정 위치의 값을 꺼낸다.
5.Map - 값을 key, value 형태로 관리한다.
- put(key, value) - 값을 저장한다.
- value get(key) - key에 해당하는 value를 구현
SDLC(Software Develpment Life Cycle)
- 소프트웨어 개발 환경 주기, 어떻게 하면 함께 개발을 잘 할 수 있을까
- 어떤 기능이 필요할까를 고민
페이퍼 프로토타이핑?
- 제품이나 서비스를 효과적으로 전달하기 위해 종이에 간단하게 그림이나 글씨로 제품을 상상하여 표현하는 것
소프트웨어 개발 = 요구사항을 구현, 코딩은 그 과정의 일부일
Ex 01) Exam01 클래스와 Ball 클래스를 각각 작성하고, Exam01 클래스(메인)에서 b1, b2 객체를 생성해 비교문을 통해 각각 객체가 같은지 알아보자
Ex 02) Cal 클래스(더하기, 빼기, 초기화, 출력 메소드)와 Exam02 클래스를 만들고 1 ~ 100까지의 합을 구해라.
Cal : 계산을 위한 객체
value - 내부적으로 가지는 정수 값
더하다(정수) - 특정 정수 값을 받아서 value에 더한다.
빼다(정수) - 특정 정수 값을 받아서 value에 뺀다.
초기화() - value값을 0으로 바꾼다.
출력() - value값을 출력
'Java' 카테고리의 다른 글
Day 3. Maven 이란? (0) | 2018.12.06 |
---|---|
Day 3. Maven 프로젝트 생성 및 Java 8 설정 (0) | 2018.12.06 |
windows10에 JDK설치하기 (0) | 2018.12.06 |
Day1. java 개발 환경 설정(window) (0) | 2018.12.04 |
Day 1. Java 프로그래밍이란? (0) | 2018.12.03 |