11일차 강의 정리


DAY8, DAY9, DAY10 의 총 정리


객체지향 언어

기능 -> 메소드-동사

속성 -> 필드-명사


메소드

형태 : [static] 자료형 메소드명 (인자){ 

...

return 자료형에 해당하는 값;

   }


1. static 메소드(클래스메소드)

(main에서 사용 형태) [패키지경로].[class명.]메소드명();  *나자신이갖는 메소드의 경우 class명 생략

객체의 생성없이 바로 사용가능

프로그램 시작과 동시에 메모리 static영역에 로딩되어 실행

가비지 컬렉션의  메모리 관리대상이 아님

라이프 사이클은 프로그램 시작 ~ 종료시 까지 항시 유지

절차지향 프로그래밍 - 함수 ...와 동일하다고 생각하면 됨


2. non-static 메소드(인스턴스 메소드)

(main에서 사용 형태)

[패키지경로].Ex01(클래스명) me = new [패키지경로].Ex01()(생성자호출); //참조변수

참조변수(객체 메모리주소값).메소드명();

this = 참조변수 역할

객체 생성이 우선 - 생성된 객체의 주소값을 기억하기 위한 참조변수(클래스타입)


생성자

형태 : [접근제한자] 클래스명(){

...

}

객체 생성에 관여 - 객체 생성시 추가적인 작업

객체 생성 시에 단 한번 수행 - 재호출 불가

일반적으로 필드 값의 초기화


변수

멤버필드(전역변수)

형태 : [static] 자료형 변수명 = 초기화;

호출시 지역변수와 멤버필드 그명칭이 동일할 시, 우선순위는 지역변수>멤버필드


클래스변수(static) - 메모리 static 영역에 프로그램 시작과 동시에~~프로그램end

클래스명.변수명


인스턴스변수(non-static)

참조변수명.변수명


예제소스 & 변수의 상수화

소스

public class Ex01 {

int a;

static final double PI=3.14; //변수의 상수화(변경x)


public Ex01(){        //생성자

a=9;

}

public Ex01(int a){

this.a=a; //멤버필드

}

public static void main(String[] args) {

int a = func1();

func1();

Ex01 me = new Ex01(); //객체 생성

me.func2(); //참조변수를 반복해서 사용

me.func2();

me.func2();

new Ex01().func2(); //한번호출

  //PI=4.12; //에러

System.out.println("PI는 "+PI);

}//main end

static int func1(){

System.out.println("static 메소드");

return 0;

}

void func2(){

System.out.println(++a+"  non-static 메소드");

}

}//class end

결과





'* Programming > JAVA' 카테고리의 다른 글

DAY12 배열 문제  (0) 2016.07.19
DAY12 배열  (0) 2016.07.19
DAY10 업다운 게임  (0) 2016.07.18
DAY10 Class/생성자  (0) 2016.07.18
DAY9 멤버필드  (0) 2016.07.15

+ Recent posts