하나의 java 파일에서 여러 개의 class를 사용 안함.(자바에서는. 관용적으로.)

main에서 System.out.println 사용x

 <08-07-02 복습>

 

1. 생성자(constructor)

             -       하위 Class의 객체가 생성되기 위해서는 먼저 내부적으로 상위 Class의 생성자가

    호출되서 부모 객체가 먼저 생성되어야한다.(부모없는 자식은 없다.)

             -       생성자가 하나도 없는 경우 기본생성자가 자동으로 생성.

                  (기본생성자의 접근제한자는 클래스의 접근제한자와 동일)

          

          

          2. OOP(Object Oriented Programing)

          

1)    상속성(inheritance)

2)    다형성(polymorphism).

3)    은닉성(Information Hiding)

4)    캡슐화(Encapsulation)

 

 

l  기본자바 파일의 구조.

 

1.     패키지 선언

2.     import구문.(생략: import java.lang.*;)

3.     class 선언 *Class 앞에는 접근제한자 지정가능.(Public or Default)

4.  field(속성) 선언,초기화 -  

5  객체의 초기화(생성자)

6.   Method 선언

 

* Public static void main(String[]args){

             실행시 제일먼저 JVM이 호출하는 메소드.

}

 

 

 

n  자바의 주석

1)     // : 한줄주석

2)     /* */ : 여러줄 주석.

3)    /**

*/ : JAVA DOC = API 문서를 만들 때 쓰임.

*javadoc –d “경로” “filename.java”

 

n  자바의 변수

1)    변수의 Type에 따라.

 

1.     기본형 변수(Primitive Type) 변수(8)

존재이유 : 실행의 효율성때문.

 

n  정수형 :       byte = 1 byte     초기값(0)-short, int도 동일

            Short = 2 byte

            Int = 4 byte

            Long= 8 byte    초기값(0L)

 

n  실수형 :      float = 4 byte    초기값(0.0F)

           Double = 8 byte 초기값(0.0)

 

n  문자형 :      char = 2 byte(문자 한글자)

             

n  논리형 :      Boolean = byte 계산 안함.(true, false). 초기값(false)

 

*  8bit = 1byte

* 정수형과 실수형의 구분을 위해 8bit 중 맨 앞의 1bit를 부호비트로 사용.(0=정수,1=실수)

 

So 뒤에 7bit만 사용. But 0의 경우 정수의 경우의 수를 사용하므로.

And “0”을 기준으로 “+”“-“를 대칭구조로 사용.

 

Ex) 1 byte 일 경우 (byte) 8bit 7bit사용

                     -2 7 ~ + 2 7 -1

 

 

 

 

2.     레퍼런스형 변수(Reference Type 변수,객체형)

: 형변환 방향(위로) - 최상위인 Object – Class

초기값 : = null;, 실제로는 참조하는 객체의 주소값을 가져옴.

 

                                                                               

 

n  유효범위에 따라

1.     멤버변수 (Member Variable = field)

: 초기화를 하지 않아도 된다.

 

Ex) int I;(자동으로 0으로 초기화가 된다.)

 

2.     메소드 지역변수 (local Variable)

: 반드시 초기화를 해야한다.

 

Ex) int I = 10;

 

 

n  제한자(Modifier)

         : Class, interface, 변수, method, 생성자 앞에 붙어서 기능을 제한하는 Keyword.

 

1)    접근제한자

1.     Public : 모두 다.(다른 컴퓨터일지라도.)

2.     Protected : 상속관계

3.     Default : 같은 패키지.

4.     Private : 같은 Class 안쪽에서만 가능.

*  상위 제한자는 하위제한자를 포함.

 

2)    수정제한자(static) : static/

3)    수정제한자.(final)

4)    추상제한자(abstract)

5)    기타(Synchronized, transient, volatile, native)

 

 

 

 

 

 

n  오버로딩과 오버라이딩.

 

1)    오버라이딩(Overriding)

 : 상위 Class에서 정의된 Method를 하위 Class에서 재정의하는 것.

 

정의 : 상속관계가 있는 클래스에서 부모클래스의 메소드 내용을 자식클래스에서

재정의 하는 것

 

조건

- 반환타입이 같아야한다.

- 인자(parameter)의 개수나 type,순서가 모두 같아야한다.

- 부모클래스의 오버라이딩 될 메소드의 접근제한자 보다 자식클래스에서

- 재정의하는 메소드의 접근제한자의 범위가 같거나 더 커야한다,

 

 

2)    오버로딩(Overloading) : 편의성을 위해서 쓴다.

: 메소드의 이름은 같은데 인자의 개수나 Type, 순서가 다른 형태의

메소드로써 이름만 같지 별개의 메소드인 것을 말한다.

 

조건 : 인자(parameter)의 개수나 Type, 순서가 달라야 한다.

종류: 생성자 오버로딩, 메소드 오버로딩

 

 

 

n  This, super

 

1.     this : 자기자신(class)의 객체.

2.     Super: 부모Clas의 객체.

 

        기본기를 충실히~          

 

 

 

toString : 실체를 나타냄.

 

 

 

 

ToString

 

getClass().getName() + '@' + Integer.toHexString(hashCode())

 

hashcode tosting HexString(16진수)으로 바꿔서 출력

System.out.println(생략_toString)

 

= public static void pln(Object o){

          System.out.println(o.toString());

          System.out.println(o.hashcode());

}

:해설

     pln이라는 method를 만든후 인자값을 Object로 사용{

     Object 안에 toString() 호출.

     Object 안에 hashcode() 호출

}

Overloading의 이유 : 편이성을 위해.

 

 

 

n  Api 문서자체를 만들어내는.명령어.

: Javadoc –d “directory” “filename.java”

 

n  Static : 소유제한자.

1)     Static 붙으면 클래스 소속.

:  static static 끼리만 친하다.

static 붙은 (안쪽에서는) 변수,메소드 만 사용할수있다.

  

2)     Static 안 붙으면 객체 소속.

:

 

 

 

 

 

 

숙제)

1.     자바의 연산자.

2.     조건문 1(if, if-else).

3.     조건문 2(switch)

4.     반복문1(for)

5.     반복문2(while,do-while)

6.     제어의 이동(break,continue,return,label방식)

 

 

 

,Static 정리 - Static이 붙으면 공유된다고 생각하면 됨.

사용범위 : field , method…

 

1)    Static 붙으면 클래스 소속.

:  static static 끼리만 친하다.

static 붙은 (안쪽에서는) 변수,메소드 만 사용할수있다.

  

2)    Static 안 붙으면 객체 소속.

-Static 이 없을 경우 객체소유이므로 객체가 없을 경우

Static값 역시 생명력이 없다.

So 사용할 때에는 객체.”static

 

Ex) non-Static 일때

ts.knife = 1;

 

           Static 일때

                      knife =1;

 

l  객체 소유일경우 즉, static이 미존재시 객체를 만들어 소유권을 부여해줘야 함.

 

 

*  잡다한 것.

Method에서 parameter사용시

받아오는 인자값을 this로 지정안해주나??

 

이유 : this. 구분이 필요한 경우는 해당 class일때

         인자값과 중복되는 field값 혹은 method값이 있을때

         구분이 필요한거지. parameter 이용시 필요한 값이 아님.

다른 카테고리의 글 목록

자바 기본 공부/기초 이론 카테고리의 포스트를 톺아봅니다