자바의신 1 편

존스노우·2022년 5월 2일
0

자바의신

목록 보기
1/2

1장

p 25

클래스는 상태(state) 와 행동(behavior)이 있어야한다 ..

메소드로 행동을하고 ,상태는 클래스의 특성을 결정짓는 것.

상태란?

클래스 안에 / 메소드 밖에 정의

  1. 클래스 안에 변수가 클래스의 특성을 결정짓는 상태 에 해당.

그러나 굳이 상태와 행동이 꼭 필요 한건 아님

p 31

예약어 이미 예약되어 있는 것이므로 사용 할 수 없다,

class , int ,return 등 이런건 변수명이나 메소드명 클래스 명으로 사용 X

정리

class : 자바에서 가장 작은 단위로 행동과 상태를 가지고 있다.
행동은 메소드로 , 상태는 변수 명과 같은 것이다.

method: 클래스내에 행동에 해당하는 부분

2장

p 58

객체

앞서 클래스는 상태와 행위가 있어야 되고 객체는 사물을 표현함

사물에도 상태와 행위가 있음.

책 : 펼쳐져 있는 상태 / 덮여져 있는 상태
행위: 펼치는 행위 / 페이지를 넘기는 행위 / 덮는 행위

객체지향으로 작성되는 코드 예시

Car 객체 상태를 변수에 두고

함수로 그 변수의 상태를 변경한다.

3장

클래스와 객체는 구분해야된다 P 61

Car class는 말그대로 클래스

A의 포르쉐와 B의 포르쉐는 색도 다르고 주행거리도 다르고 다 다르다.

실제 사물을 나타내기 위한것은 객채(Object) Or 인스턴스(instance)

Car A = new Car() / Car B = new Car() A와 B 각각 객체 만들어주기

클래스는 대부분 그자체만으로 일을 할 수 없고

객체 new 생성자로 생성해야만 일을 시킬 수 있다.

3장 정리

클래스와 객체의 차이점

클래스는 설계도 객체는 설계도를 바탕으로 생성된 실체 !

4장

인스턴스 변수 : 메소드 밖에, 클래스 안에 선언된 변수

역할 : 객체가 생성될 때 생명이 시작 되고 그 객체를 참조하고 있는
다른 객체가 없으면 소멸 된다 ?
++ 객체가 생성 될때 마다 새로운 메모리 공간에 할당 됨.

클래스 변수 : 인스턴스 변수에 static을 붙이면 됨.

클래스가 처음 호출될 때 생명이 시작되고 자바 프로그램이 끝날 때 소멸 됨.

++ 공유 기능을 가지고 있음 객체를 여러개 생성해도 같은 값을 공유함

자료형

기본 자료형 : int a = 10;
참조 자료형 : Car car = new Car();

8비트 byteType

1byte 맨 앞자리는

양음수를 나타내는 표시

그래서 -128~127 1 바이트의 범위
01111111
10000000
signed , unsigend

Long 같은 경우 L을 안붙여주면 Int로 인식

float / double 은

제공할 수 있는 범위를 넘어서면 값의 명확성을 보장하지 못한다.

byte를 만든 이유

문자를 대신하기 위하여 만든 단위입니다.
1 바이트로 표현할 수 있는 숫자는 0부터 255까지 256 가지입니다.
이 숫자에 각각의 문자를 배정해서 사용하기 위하여
바이트라는 단위를 만들어 사용합니다.

7장

기본 자료형 배열은 초기값은 0
참조 자료형 배열은 초기값이 null

8장 (참조자료형)

자바의 생성자는 객체(인스턴스)를 생성하기 위해 존재함
생성자의 리턴타입은 바로 객체 !

overloading

메소드 이름은 동일하지만 각 매개 변수는 다르다.

비슷하게

오버라이딩은

상위클래스의 메소드를 하위 클래스 객체가 재정의해서 사용

static block
호출시 단 한번만 호출되는것.

static {
}

가끔 사용 할 때가 있을 듯 하다.

-> 클래스를 초기화 할 때 꼭 수행되어야 하는 작업이 있을경우
유용하게 사용 할 수 있다

passByValue / passByReference

passByValue:값만 전달함. 원래 값은 놔두고 전달되는 값을 복제

  • 호출되기 전과 후에 데이터가 변경 되지 않음. 단순 복사만

    기본 자료형은 passByValue 이다.

    passByreference 는

    원래값을 매개변수로 넘겨서 값을 변경하면 값이 변경됨

    주소값을 참조하니까 그렇다.

    매개변수를 지정하는 특이한 방법

    int ... 변수명

    타입 ... 변수명

    매개변수 수를 가용적으로 지정

    method(1,2,3,4,5) 요런 식.

    9~ 12 skip

    13장

인터페이스와 ABSTRACT CLASS

인터페이스는 임플리먼트 예약어를 사용해 구현 클래스를 생성할수 있지만.

설계서 느김이 강하기때문에 구현메소드 포함은 되지 않는다 , (static final 포함) 상속 X

반면 추상 클래스는 모두 사용하고 사용할때 extend 예약어를 쓴다.

추상클래스는 공통적인 기능을 미리 구현해 놓으면 도움이 많이된다?

추상클래스는 실제 클래스의 공통적인 부분을 추출해 규격을 잡아놓는다 이렇게 이해하면 편할거 같다.

그래서 추상 클래스는 메서드와 내용이 추상적이기 때문에 객체를 생성 할 수 없다

14장

catch 블록은 다중으로 만들며 각 catch마다 예외를 따로 설정해도됨.

작은예외 부터 큰 예외로 순서도 중요함

error / exception 차이

프로그램 밖에서 발생했나 안에서 발생했냐 ? 차이

프로그램이 멈추었냐 / 계속 실행할 수 있느냐

프로세스에 영향을 줌 / 쓰레드에 영향을 줌

catch에서 PrintStackTrace 는 개발 환경에서만..

운영환경에서는 에러가 난다.

15 장

String 은 불변 객체.

계쏙 더하는 작업을 하면 쓰레기 를 만들게 됨... 기존 객체가 버려지고

새로운 String 객체가 생성됨 .

속도는 느리지만 스레드에서 안전한

Stringbuffer가 있음 불변의 String 단점 보완.

18 장 정리

캡슐화

객체의 연관된 상태와 행위를 결정하는 기능을 묶어줌

private int price;

public void setPrice(){
~~
}

다형성 : 부모클래스에서 파생된 자식들의 기능이 각기 다를 수 있다.

profile
어제의 나보다 한걸음 더

0개의 댓글