'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
1
2
3
4
5
6
7
8
9
10
//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);
    }
}
1
--09 16:48:30.784 12379 12379 D hello   : com.test.simpletest.Foo
1
2
3
4
5
6
7
8
9
10
11
12
//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);
    }
}
1
07-09 16:48:30.784 12379 12379 D hello   : Foo!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//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();
    }
    
1
07-09 16:53:33.591 12766 12766 D hello   : Foo!
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
//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();
    }
    
1
2
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