티스토리 뷰

method()

  • 접근제한자 메모리영역 리턴타입 메서드이름(파라미터) { }     //이러한 형태로 생성할 수 있다.
  • parameter : 
  • arguments : 

 

접근 제한자

public (+) : class외부 어디서든 참조 가능

protected (#) :

- 상속일 경우 : 상속된 곳에서 접근 가능

- 상속이 아닐 경우 : 같은 패키지 내에서 접근 가능

(default) (~) : 같은 패키지 내에서만 참조 가능

private (-) : 현재 클래스 내에서만 참조 가능

메모리 영역

static :

- Application이 실행되면 모두 메모리에 할당되고, Application 종료시 삭제 된다.

- 객체를 생성하지 않고 ( 클래스명.메서드명 ) 으로 호출

(non - static) :

- class 의 인스턴스를 생성할 때 메모리에 할당 된다.

- 객체를 생성하여 객체명.메서드명 으로 호출

실습 TEST

접근제한자와 메모리영역에 관한 코드를 테스트 해보기 위한 실습 환경 (클래스 구성도) 입니다.

UML : Unified Modeling language http://www.objectaid.com/update/current 에서 다운

 

Objectaid 다운로드 및 사용법은 다시 포스팅 하겠습니다.

package com.test01;

public class MethodTest01 {
	
	//Method : 기능 (명령문들의 집합)
	
	
	public static void main(String[] args) {
		
		//class.method() : 형태로 호출
		MethodTest01.publicMethod();
		MethodTest01.protectedMethod();
		defaultMethod();
		privateMethod();
		
	}
	
	//접근제한자 메모리영역 리턴타입 메소드이름(파라미터){
	//	블록 = 바디
	//}
	
	//public (+) : 어디서나 접근, 참조 가능
	public static void publicMethod() {
		System.out.print("접근제한자 1. ");
		System.out.println("public");
	}
	
	//protected (#) 
	//상속일 경우 : 상속된 곳에서
	//상속이 아닐 경우 : 같은 패키지 내에서
	protected static void protectedMethod() {
		System.out.println("접근제한자 2. protected");
	}
	
	//(default) (~) : 같은 패키지 내에서만
	static void defaultMethod() {
		String str = "default";
		System.out.printf("접근제한자 3. %s \n", str);
	}
	
	//private (-) : 현재 클래스 내에서만
	private static void privateMethod() {
		System.out.println("접근제한자 4. private");
	}
	
	public void nonStaticMethod() {
		System.out.println("non static method!");
	}
	
}
package com.test01;

public class MethodTest02 {

	public static void main(String[] args) {
		//메모리 영역 : static / (non-static)
		//static : class.method();
		MethodTest01.publicMethod();
		MethodTest01.protectedMethod();
		MethodTest01.defaultMethod();
		//MethodTest01.privateMethod();	//private메서드는 not visible
		//MethodTest01.abc();	//선언되지 않은 메서드는 undefined
		
		
		//(non-static)
		//class 변수 = new class();
		//변수.method();
		MethodTest01 methodtest01 = new MethodTest01();
		methodtest01.nonStaticMethod();
		
		//MethodTest01.nonStaticMethod();
		
		
	}
}
package com.test02;

import com.test01.MethodTest01;

public class MethodTest03 {

	public static void main(String[] args) {
		MethodTest01.publicMethod();
		//MethodTest01.protectedMethod();
		//MethodTest01.defaultMethod();
		//MethodTest01.privateMethod();
		
		MethodTest01 methodtest01 = new MethodTest01();
		methodtest01.nonStaticMethod();
	}
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함