본문 바로가기

구디 아카데미 수료 과정/JAVA

구디아카데미/클라우드 활용 자바개발자 양성과정/•7일차/국비지원IT개발자 취업 / 김명신 강사님/10.31

%4c

%4d 차이가 뭐게?

 

%4 = 문자의 최소폭을 정함

c= 문자 (char)

d=정수 (digit..?)

 

 

•추상화: 클래스 생성 단계

• 클래스 : !!!!사용자 정의 '자료형'!!!! ->객체화가 돼야함.

                  객체 생성 도구. 객체지향언어에서 가장 중요한 개념 (직접 쓸수없고 객체화를 통해서만 접근가능??)

            속성 : 멤버변수

            기능 : 멤버메서드

• 객체화 : 클래스 정보를 이용하여 메모리를 할당받는 과정. new 클래스명(); 참조변수로 참조하여 사용함.

                                                                         Student1 s1 =new Student1();

 

     하나의 참조변수는 하나의 객체만 참조가 가능함

     하나의 객체는 여러개의 참조변수로 찬조 가능함.

          -> 참조변수가 참조하지 않는 객체는 사라진다.

 

  선언위치 선언방법 메모리 할당
시점
메모리 할당
위치
특징
클래스 변수 클래스 내부 static
자료형 변수명
클래스
정보가 로드될 때 바로
클래스 영역 •객체화 필요 없음
•클래스명.변수명(Car.width)으로 호출
•기본값으로 초기화 됨
인스턴스 변수
(객체 변수)
클래스 내부 자료형 변수명 객체화될 때 힙 영역 •반드시 객체화 돼야함.
•참조변수명.변수명으로 호출 가능
•기본값으로 초기화됨
지역 변수 매서드 내부 자료형 변수명 선언문 실행시 스택영역
(메서드)
•메서드, 블럭 내에서만 사용 가능함
•매개변수=지역변수
•기본값으로 초기화 안됨 따로해야함
int num=0;

 

 

클래스 생성 예문 

 

 

모르는거 총출동

 

          Rectangle2 r1 = new Rectangle2();  => r1이라는 참조변수에  Rectangle2 클래스 객체를 생

1.  객체5개가 아니라 참조변수 5개라는거 이해했니?

2. Math.random  31을 곱해야 0~30 외우자    곱하기 2면 0~1이겠지?

3. for문   Rectangle2라는 참조변수의 r<< 첨보는거

 

 

 

 

 

멤버메서드(함수)

 

• 메서드 구성

 

선언부

구현부

[접근제어자][제어자] 리턴타입  메서드명(매개변수){

    기능을 수행할 문자들

}

 

리턴타입: 메서드 종료 후 전달되는 값의 자료형을 선언부에 기술

                 하지만 리턴타입이 Void 라면 전달값이 없음 ( Void= 리턴이 없다는 뜻)

매개변수 : 메서드 호출시 필요한 값의 목록 (자료형 변수명, 자료형 변수명,.....)

 

return 예약어: 메서드 종료.

      리턴타입이 void인 경우 : 생략 가능   메서드 끝의 }에서 메서드 종료됨

      리턴타입이 void가 아닌 경우: 생략 절대 불가

                                                      return 리턴값;

                                                       리턴값은 리턴타입과 같거나, 리턴타입으로 자동형변환이 되는 경우 가능

 

 

 

new 로 선언되는 애들은 다 힙영역에 들어감

 

 

 

클래스  -변수    -클래스변수

                            -인스턴스변수

   

             - 메서드  -클래스메서드

                              -인스턴스메서드

static클래스멤버= 클래스 변수 + 클래스 메서드

인스턴스멤버= 인스턴스 변수 + 인스턴스 메서드

 

클래스멤버에서 클래스 멤버 호출 = 정상

인스턴스 멤버에서 인스턴스 멤버 호출 = 정상

인스턴스 멤버에서 클래스 멤버 호출 = 정상

 

클래스멤버에서 인스턴스 멤버 호출 = 직접호출 불가!!!  인스턴스 멤버가 있는 클래스를 객체화필요

 

같은 멤버들끼리 클래스명, 참조변수명 등을 생략할 수 있음.

단, 클래스멤버에서 인스턴스 멤버 호출할 때는 객체화가 필요하므로 이때는 참조변수명을 사용해야함

 

클래스멤버, 인스턴스 멘버 상호 간의 호출 Membercall  예제

 

 

소감

클래스..인스턴스..인터페이스... 메서드.. .지역변수... 새로운 용어들 사이에서 혼돈의 도가니

개념정리 시급

국비지원IT개발자취업 김명신강사님 구디아카데미 후기