어떤 것을 습득한다고 가정하였을 때, 그 습득에 필요한 절대 시간이 존재하는 것 같습니다.

아무리 뛰어난 사람이라 할지라도 그 습득방법이 숙달되어있고, 그것을 위한 연결고리들을 이미 가지고 있어 

습득의 시간이 줄어드는 것이지, 습득에 필요한 프로세스 자체가 줄어드는 것은 아닌것 같다는 생각이 들었습니다. 

할 수 있는 일은 효율을 높이는 일인 것 같은 기분이 듭니다. 

효율을 추구한다면, 하나를 습득하더라도 여러 개의 갈래로 응용할 수 있을 뿐 아니라 

변형또한 시킬 수 있지 않을테니 말입니다.

 

절대 시간을 간과하고 조급한 마음이 드는 것 그것을 경계하고 습득력과 응용력을 높여야할 것 같습니다.

즉 노선이 있고, 어떠한 노선을 걸어간다는 것과 노선에 따른 좋은 도구들을 습득하는 것은 중요하지만

결과적으로는 노선을 걸어가는 일. 우선순위의 분류와 우선순위인 것을 명확히 하고 사이사이에 중요한 것들을 

끼워넣는 양상이 중요하지 않을까 하는 생각이 듭니다.

 

본질은 코딩이란 컴퓨터에게 명령을 내린다는 것과 자동화 시킨다는 것 그리고 어떠한 구조를 만든다는 것

그 구조의 효율성과 기능 구조를 고려해서 어떠한 기계상자를 만드는 것이 아닌가 하는 생각이 듭니다.

 

b.m. 노선을 잊지 말 것!

-------------------------------------------------------------------------------------

 

매개변수 ()의 변수이다.

return은 호출한 곳으로 값이 돌아간다.

 

매서드의 실행흐름

 

1. 객체생성

2.매서드 호출

3.결과값 반환

 

return문 : 실행 중인 메서드를 종료하고 호출한 곳으로 되돌아간다.

반환타입이 void일 때 생략가능

 

return이 없을 때 오류가 생긴다

그래서 참일때와 거짓일때를 구분해줘야 한다.

 

호출스택

 

스택:밑이 막힌 상자. 위에 차곡차곡 쌓인다.

메서드 수행에 필요한 메모리가 제공되는 공간

메서드가 호출되면 호출스태에 메모리 할당, 종료되면 해제

하나의 스택은 하나의 메서드만 실행중

 

쓰레드를 가면 여러개의 스택이 생길 수 있고 하지만 보통 싱글쓰레드여서  한개이다.

 

기본형 매개변수 - 변수의 값을 읽기만 할 수 있다.

참조형 매개변수 - 변수의 값을 읽고 변경할 수 있다.

 

 

  스태틱 매서드 static이 붙은 매서드: 클래스

ex) Math.random(), Math.round()

-객체생성없이 '클래스이름.매서드이름()'으로 호출

-인스턴스 맴버(iv, im)와 관련없는 작업을 하는 메서드

-메서드 내에서 인스턴스 변수(iv) 사용불가

스태틱매서드는 iv를 사용하지 않을 때 사용

 

 

서로 반대이다. 차이는 인스턴스는 매개변수가 없고, 스태틱은 매개변수가 있다.

iv의 묶음은 객체이다.

 

인스턴스 매서드

-인스턴스 생성 후, '참조변수.매서드이름()'으로 호출

-인스턴스 맴버 (iv, im)와 관련된 작업을 하는 메서드

-메서드 내에서 인스턴스 변수(iv) 사용가능

 

인스턴스 변수와 인스턴스 메서드는 객체 생성 후 사용 가능하다.

 

오버로딩 (과적)

한 클래스 안에 같은 이름의 매서드 여러 개 정의하는 것.

 

오버로딩 성립하기 위한 조건

1. 메서드 이름이 같아야 한다.

2. 매개변수의 개수 또는 타입이 달라야 한다.

3. 변환 타입은 영향 없다

 

생성자 

인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메서드'

인스턴스 생성시 수행할 작업(iv 초기화)에 사용

이름이 클래스 이름과 같아야 한다.

리턴 값이 없다.(void 안 붙임)

 

클래스이름(타입 변수명, 타입 변수명)

 

class card

 

    card() //매개변수 없는 생성자 = 기본 생성자

    card(String kind, int number) // 매개변수 있는 생성자

 

Time t = new Time(12, 34, 56); 생성자 호출

 

생성자 this() : 생성자에서 다른 생성자 호출할 때 사용

다른 생성자 호출시 첫 줄에서만 사용가능

코드의 중복을 제거하기 위해 코드를 호출한다.

 

참조변수 this

인스턴스 자신을 가리키는 참조변수

인스턴스 메서드(생성자 포함)에서 사용가능

지역변수(lv)와 인스턴스(iv)를 구별할 때 사용가능

 

인스턴스 매서드와 생성자에서만 사용가능

클래스 매서드에서 사용 불가

 

 

변수의 초기화

지역변수는 수동 초기화 해야함(사용전 꼭!!!)

맴버변수는 자동초기화되어서 0으로 초기화된다.

 

1. 명시적 초기화 (=) : 간단한 초기화

int door = 4

Engine e = new Engine();

 

2.초기화 블럭 : 복잡한 초기화

인스턴스 초기화 블럭 : {}

클래스 초기화 블럭 : static {}

 

3.생성자 : iv 초기화에 사용, 복잡한 초기화에 사용

 

 

클래스 변수 초기화 시점 : 클래서그 처음 로딩될 때 단 한번

인스턴스 변수 초기화 시점 : 인스턴스가 생성될 때 마다

'코딩 > 자바' 카테고리의 다른 글

자바의 정석 ch7-2  (0) 2022.10.27
자바의 정석 ch7-1  (0) 2022.10.12
자바의 정석 ch6-1  (0) 2022.10.12
자바의 정석 ch5  (0) 2022.10.12
자바의 정석 ch4  (0) 2022.10.12

+ Recent posts