자바기초 - 자바실행절차, 스택과 힙.

2009. 6. 23. 16:18 - 에릭투스

<복습내용>

*상속 : 슈퍼클래스에서 서브클래스로 상속되기 때문에 편리.

*다형성

 

레퍼런스 변수란?

: 객체 또는 배열 등의 주소 값을 가지는 변수.

Ex) Car c = new Car();

이후 “Car”라는 인스턴스를 사용시 “c”라는 변수를 사용

*C   : 레퍼런스 변수.   - > 스택에 저장
*Car :
인스턴스.         - > 힙에 저장.

<복습내용 끝>

 

1.     자바의 실행절차

    : 사용자의 “filename.java” compile --à byte code로 변환(class file) -à JVM실행 -à 결과출력

*Compile: 문법에 맞게 되어있는지 검사.

*BYTE CODE : 기계어는 아님, JVM이 알아 들을 수 있는 언어

 

2.     용어 정리.

1)     객체(Object) : 모든것, Class를 통해 만들어지는 구현물.

2)     클래스(Class) : 객체를 만들어내는 틀,(=설계도,blueprint)

3)     속성(field): 객체를 구분 함, 객체의 속성이며, Class의 정의되어있음.

(=property,attribute,member variable,전역변수…)

4)     메소드(method): 객체가 할 수 있는 행위.

5)     생성자(constructor): 객체가 만들어질 때 호출이 되는 일종의 메소드 같은 것.

   -       클래스이름과 동일한 단어(대문자로 시작한다.)

   -       메소드와 비슷한 형태 (){}

   -       반환타입이 없다.

 

 

 

 

생성자(constructor)

           Super Class Sub Class가 존재하는 상속관계 일 때,

           Sub Class에서 정의를 하지 않았을 경우,

           Super Class의 객체(Object)불러옴.(super();)

 

 

다형성의 개념

 Overriding : 부모 Class에서 정의된 Method를 하위 Class에서 재정의.

 *부모 Class에서 정의된 것을 상속받지만, 상속받은 내용을 특수화 하는 작업.

 Overloading: 부모 class에서 정의된 field를 재정의시 사용(parameter사용)

 

접근제한자(사용범위 : 클래스,메소드,필드,…등등)

클래스에서는 public, default만 사용가능.

Public ,protected, default, private

 

1.     Public

: 모두다 접속이 가능.(컴퓨터와 컴퓨터가 달라도)

 

2.     Protected

: 상속구조에서도 접근이 가능. (만약 폴더가 달라도),(많이 사용은 안함.)

 

3.     Default

: 같은 패키지(폴더)에서 접근가능.(접근제한자의 기본옵션)

 

4.     Private

: 같은 클래스 내에서 접근이 가능한.(직접적인 캡슐화에 해당)

 , class 내에서만 가능.

 

필드(field) 와 메소드(Method)

상속은 : 필드와 메소드.를 상속받는다.

필드를 바꿀경우 부모에게 상속받은 필드값까지 같이 변경,

So 구성요소 필요.

 

Public 선언된 get set 메소드를 만든다.

 

:

 

 

 

API (Abstract Program Interface)

 

생략되는 keword의 종류.

1)     Import Java.lang.*;

   (생략되어있음. Java.lang.* 에 있는 것들을 사용 할 수 있음 Ex) String,System.out.println)

 

2)     Class “classname” extends Object{} (extends Object가 생력되어있음.)

 

형변환

Type을 변경하는 것. (가면을 쓴다.)

type은 존재하지만 가상,임시의 type정의하는 것.

 

           Xman x1 = new Xman();

 

        Ex) Human h = x1;

            h.printDetail();

* Human에서 있는 method특징으로만 가능하지만 호출은 overriding한 것을 호출함.

*, Human을 호출하는 것이 아닌

*즉 아무리 Human h = x1 이라 하더라도. 가면만 Human,

  본질은 역시 Xman…..

 


JVM
이 관리하는 메모리

 

1.     Method Area

2.     Stack

:변수 값을 저장.

먼저 들어간 것이 제일 나중에 나옴.

3.     Heap

: 객체가 Heap 안쪽에 생김.(객체는 무거움.)

 객체는 한번만들어지면 주소값을 생성시킴. 그 주소값이 hashcode.

 Hashcode : Memory 주소값.(실제 메모리주소값이아니라 JVM이 관리하는 주소값);

숙제 : 상속관계를 만들고, 오버라이딩 예제,오버로딩 예제,형변환 예제를 만들어봅시다.

 

super(); --> super: 부모클래스의 객체.부모클래스의 객체를 호출

field 변수의 값을 정하지 않을경우   int 기본값 = 0

                                            String 기본값 = null

 

 

 

(Method 생성시)return 값 사용/미사용

 

1) return값 사용.

: option datatype을 써준뒤 return; 써주면됨.

 

ex) public int test_return(){

           return 0;

}

 

2) return값 사용 안할경우.

: option으로 void 사용

 

ex) public void test_unreturn(){

           }

 

 

Parameter 값 사용

 

1) field parameter

 

"constructor name"(Type "fieldname",...)

 this."fieldname"="field name";

 

 

2) Method parameter

 

"option" "Method name"(Type "fieldname"...){

           this."fieldname";

           }

 

 

 

        

//public 선언된 get set 메소드를 만든다.

          

           //get method

           public String getName(){

                     return name;

           }

         //set method

           public void setName(String name){

                     this.name=name;

           }

다른 카테고리의 글 목록

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