'java'에 해당되는 글 43건

  1. 2018.07.18 접근 지정자
  2. 2018.07.09 Simple reflection examples.
  3. 2018.06.22 install openjdk-8-jdk on unbuntu
java2018. 7. 18. 10:55

 자바 클래스의 멤버 각각에 외부에서 접근할 수 있는 범위를 지정하는 접근 지정자(access modifier)를 둘 수 있다. 다음과 같은 네 가지가 있다.



접근 지정자

접근 범위

동일
클래스

동일
패키지

다른
패키지의
자식
클래스

다른
패키지

public

접근 제한 업음

O

O

O

O

protected

동일 패키지와 상속 받은 클래스 내부

O

O

O


default

동일 패지키 내에서만

O

O



private

동일 클래스 내에서만

O





public

 공개 정도가 가장 높고 어디에서든 자유롭게 접근할 수 있다.

protected

 같은 패키지 내에서 접근이 가능하고 다른 패키지에서도 상속을 받은 클래스 내부에서는 사용 가능하다. public과 다른 점은 다른 패키지의 자식 클래스 외부에서는 접근할 수 없다는 것이다.

default (package private)

 같은 패키지 내에서만 접근이 가능하다. 아무런 접근 지정자도 없을 경우 이 옵션이 자동으로 적용된다.

private

 동일 클래스 내에서만 접근이 가능한 가장 낮은 단계의 자유도를 갖는다.



출처: http://studymake.tistory.com/424 [스터디메이크]

'java' 카테고리의 다른 글

반복문에서 label의 사용  (0) 2019.09.12
hashcode 및 equals를 같이 override 하는 이유  (0) 2018.09.06
Cloneable interface (LINK)  (0) 2018.07.18
Simple reflection examples.  (0) 2018.07.09
install openjdk-8-jdk on unbuntu  (0) 2018.06.22
Posted by easy16
java2018. 7. 9. 17:28
	//Get class name from object
	public void getClassNameFromObject(){

		Foo f = new Foo();
		try {
			Log.d(TAG, f.getClass().getName());
		} catch ( Exception e){
			Log.d(TAG, ""+e);
		}
	}

--09 16:48:30.784 12379 12379 D hello   : com.test.simpletest.Foo

	//Invoke method on unknown object
	public void invokeMethod(){

		Foo f = new Foo();
		Method m;
		try {
		   m= f.getClass().getMethod("printFoo",new Class[0]);
		   m.invoke(f);
		} catch ( Exception e){
			Log.d(TAG, ""+e);
		}
	}
07-09 16:48:30.784 12379 12379 D hello   : Foo!

//Create object from Class instance
    public void createObjectFromClassInstance(){

        Class c = null;
        Foo f = null;
        //create instance of Class
        try {
            c = Class.forName("com.test.simpletest.Foo");
        } catch ( Exception e){
            Log.d(TAG, ""+e);
        }
        //Create instance of Foo
        try {
            f = (Foo) c.newInstance();
        } catch ( Exception e){
            Log.d(TAG, ""+e);
        }
        f.printFoo();
    }
	
07-09 16:53:33.591 12766 12766 D hello   : Foo!
//Get constructor and create instance
    public void getConstructorAndCreateInstance(){

        Class c = null;

        //create instance of Class
        try {
            c = Class.forName("com.test.simpletest.Foo");
        } catch ( Exception e){
            Log.d(TAG, ""+e);
        }
        //Create instance of Foo
        Foo f1 = null;
        Foo f2 = null;

        Constructor cons[] = c.getConstructors();

        //get all constructors
        try {
            f1 = (Foo) cons[0].newInstance();
            f2 = (Foo) cons[1].newInstance("Foo!");
        } catch ( Exception e){
            Log.d(TAG, ""+e);
        }
        f1.printS();
        f2.printS();
    }
	
07-09 17:19:04.317 14200 14200 D hello   : null
07-09 17:19:04.317 14200 14200 D hello   : Foo!


 출처 : https://www.javacodegeeks.com/2013/09/java-reflection-tutorial.html


'java' 카테고리의 다른 글

반복문에서 label의 사용  (0) 2019.09.12
hashcode 및 equals를 같이 override 하는 이유  (0) 2018.09.06
Cloneable interface (LINK)  (0) 2018.07.18
접근 지정자  (0) 2018.07.18
install openjdk-8-jdk on unbuntu  (0) 2018.06.22
Posted by easy16
java2018. 6. 22. 09:19
터미널을 열어
sudo apt-get install openjdk-8-jdk
아마 "openjdk-8-jdk"는 존재하지 않는다고 할겁니다.

그럼 아래의 순서대로 입력해줍니다.
(우분투 14버전의 PPA repository에는 자바 8이 기본적으로 포함되어있지않다고합니다.)
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk

이제 설치가 끝났으면 자바 버전을 확인해봅니다.
java -version

아래의 경로에 생긴 java-1.8.0-openjdk-amd64을 확인

ls /usr/lib/jvm/java-1.8.0-openjdk-amd64/

https://gs.saro.me/#!m=elec&jn=369

'java' 카테고리의 다른 글

반복문에서 label의 사용  (0) 2019.09.12
hashcode 및 equals를 같이 override 하는 이유  (0) 2018.09.06
Cloneable interface (LINK)  (0) 2018.07.18
접근 지정자  (0) 2018.07.18
Simple reflection examples.  (0) 2018.07.09
Posted by easy16