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 |