날아라쩡글이의 블로그입니다.

객체지향언어1(이어서) 본문

java (학원 전) story

객체지향언어1(이어서)

날아라쩡글이 2021. 3. 21. 08:51
반응형

1.return문

- 모든메서드에는 하나의 return문이 존재,

void의 반환타입의 경우 자동형변환처럼 '자동으로 컴파일러가 'return문을 추가한다.

if문을 사용할 경우 어떤값이 참인지 시스템상에서는 인식이 안되기때문에 else문을 항상 입력하여야한다. 

2. 반환값

return문의 반환값이 주로 변수가 오지만 꼭 변수만 오는 것은 아니다. 수식을 사용할 수 있으며, 

return문의 합쳐서 int a (int x , int y){ return x+y;}의 형식으로 출력되기도 한다. 

지난번 적은 글처럼 max와 min을 3항 연산자로 작성하여도 출력이 된다. 위에 예시글처럼 작성하여도 상관없다.

 

3. 호출스텍 (call stack)

= 호출스텍이란 메서드를 사용하기 위하여 제공받는 매모리의 공간이다. 메서드가 호출시 ,메모리가 할당.

사용이 되면 순차적으로 이용이 된다. 중간에 순서를 바꿀수도 없고, 할당되었던 메모리를 해결하면 공간이 반환되어 비어진다.

class kim {

pubilc static void main(String[]args){   ->. main 메서드 호출

System.out.println("Hello")}} 

->. println호출 -> main이 println을 호출함, println해결후 사라짐, 그이후 1번은 수행을 맞춰 메모리를 반환후에 스택에서 제거된다.

 

4. 기본형과 참조형의 매개 변수

기본형 매개 변수 ->매개변수로 지정한 값을 메서드의 매개변수에 복사하여 넘겨준다. 

기본형 = 기본형에 || 참조형 = 참조형에 저장된다. 

기본형 매개변수 = 변경하는 것은 불가능하고, 오직 read만 가능하다. ;기본형은 8가지가 있다.

읽기만하기 때문에 변경이 되지않고 지역변수인  x에 대해서 읽기를 진행했다. 

참조형 매개변수 = read, change , return까지 가능하다. 지역변수는 별도의 저장공간을 갖는걸 알아야한다. 

참조변수의 return

5. static 메서드와 인스턴스 메서드(메서드 = 명령문의 집합)

static 메서드 = 클래스메서드 && 인스턴스 메서드 

static메서드는 클래스 이름.메서드이름(매개변수)로 호출가능하다. 인스턴스변수 사용 불가 

:개별적으로 출력값을 설정하여 개별적으로 출력값을 낼수 있다, 매개 변수 사용

=클래스는 언제든 사용가능하지만, 클래스가 존재하는 시점에 인스턴스맴버가 존재하지 않을수도있다.. 

인스턴스변수를 사용하면 객체가 있는지 없는지 모르기때문에 오류가 난다.

 

인스턴스메서드는 반드시 객체를 생성해야지만 호출이 가능하다. 인스턴스 변수 사용 가능,매개변수사용안함

:첫번째에 전체적으로 출력값을 설정하여 전체적으로 출력값을 낼 수 있다, 객체생성후 호출가능

결과값

6. 오버로딩 (overloading)

-한 클래스 내에 같은 이름의 메서드를 여러개 정의하는 것 '메서드 오버로딩, 오버로딩'= 과적하다. (1: n)

1. 메서드 이름이 같아야한다. 2. 매개변수의 개수 또는 타입이 달라야한다. 3.반환타입은 영향없다. <조건>

 

7.  생성자 : iv의 초기화의 메서드 

인스턴트는 객체를 묶어놓은것, iv를 초기화 하는 것-> 생성자를 호출하여 생성자를 추가 , 모든클래스는 반드시 생성자를 가져야한다. (기본적으로 파일 하나에 1개의 생성자는 컴파일러가 자동 생성한다.)

-생성자의 이름은 클래스의 이름과 같아야 한다. 

-생성자는 리턴값이 없다 (void를 붙이지 않는다 ->반환값이 없기 때문)

-연산자 new가 인스턴스를 생성하는 것.->몇가지 특징만 제외하면 메서드와 별반 다르지않다.

  1. 기본 생성자 
  2. 매개 변수가 있는 생성자 

기본 생성자 : 매개변수가 없는 생성자 = 클래스 이름 (){}: 생성자가 하나도 없으면 컴파일러가 자동으로 추가

값을 지정후 오류가 해결된걸 확인 가능하다.

매개변수가 있는 확정자 :어떤 클래스의 인스턴스를 생성할 것 인가.어떤 생성자로 인스턴스를 생성할 것인가

8.생성자에서 다른 호출하는 This ()

-생성자의 이름으로 클래스의 이름 대신 this()를 사용한다 (코드중복 피할수 있음)

-한생성자에서 다른 생성자를 호출할때는 첫줄에서만 사용해야한다. 

쩡글이의 this를 호출하기위해서는 this에 대한 객체를 생성을 해주어야한다. 

9.객체 자신을 가리키는 참조변수 this (김.쩡글! 하는것처럼 성을 붙여주는 것이라 생성자랑 다른부분)

-iv의 실제이름은 this이다. 매서드의 인스턴스앞에 대문자로 표시했던 것처럼 작성해주면된다. 

-lv와 iv를 함께 작성할 경우 생략이 불가능하다.

iv에게 성을 붙여서 작성함
클래스 name대신 this()를 사용하여 코드중복을 피했다.

10. 변수의 초기화 

- 지역변수는 사용하기전에 반드시 초기화를 해야한다(직접초기화)

int x = 0; //값을 지정해주어야 한다. 

-iv,cv는 자동초기화가 되었다. 

int x ; (가능하다.)

//지역 변수의 경우 재사용이 비번하다. 그럼 효율이 떨어지기 때문에 새로운 값을 넣는 것이 좋다(수동초기화)

자 료 형 기 본 값
bolean(true || false) false
char '/의 반대 u0000'
byte, short, int 0
long 0L
float 0.00f
double 0.0d || 0.0
참조형 null

 

11.매개변수의 초기화(자동초기화)= iv,cv(대입연산자를 이용한 초기화)

- 명시적 초기화 : 간단한 = 를 이용하여 값을 저장하는 것이다.

-초기화 블럭 {}블럭을 이용한 초기화, 복잡하다.>여러문장을 입력할 때 사용한다. 

-static {}:클래스 초기화,CV

-{} : 인스턴스 초기화 ,IV

- 클래스 초기화 : 메모리에 올라갈때 

-인스턴스 초기화 : 인스턴스 변수가 생성될 때 

-CV 먼저 초기화 -> IV 초기화 ->자동->간단(=)->복잡 static {}생성자 순 

반응형

'java (학원 전) story' 카테고리의 다른 글

VScode 로 java시행하는 방법  (0) 2021.08.02
객체지향 2 이어서  (0) 2021.04.02
객체 지향 2  (0) 2021.03.25
객체 지향 언어 1  (0) 2021.03.19
1주차 java공부 요약  (0) 2021.03.01
Comments