반응형
Scope은 { } 내에서
Scope Class
package my.gabin.com;
public class Scope {
public int publicVar = 0;
private int privateVar = 1;
//constructor
public Scope() {
System.out.println("Scope, publicVar = "+publicVar +". privateVar = "+ privateVar);
}
//getter
public int getPrivateVar() { //private은 getter이용해서 main에 불러올수 있다.
return privateVar;
}
public void timesTwo(){
int privateVar = 2;
for(int i = 0; i<10; i++){
System.out.println(i+" times tow is "+ i*privateVar);
}
}
//Inner class
public class InnerClass {
public int privateVar = 3;
//constructor
public InnerClass() {
System.out.println("InnerClass privateVar = "+privateVar);
System.out.println("InnerClass privateVar = "+this.privateVar); //innerClass 값
System.out.println("OuterClass privateVar = "+Scope.this.privateVar);//OuterClass 값
}
public void timesTwo(){
int privateVar = 2;
for(int i = 0; i<10; i++){
System.out.println(i+" times tow is "+ i*privateVar);
}
}
}
}
Main Class
package my.gabin.com;
public class Main {
public static void main(String[] args) {
String privateVar1 = "this is private to main()";
Scope scope = new Scope(); //object , call constructor
System.out.println("ScopeInstance privateVar is "+scope.getPrivateVar());
System.out.println(privateVar1);
scope.timesTwo();
System.out.println("*********************************");
Scope.InnerClass innerObject = scope.new InnerClass(); //object, call constructor
innerObject.timesTwo();
}
}
Output
D:\IT\JDK\jdk11.0.6_10\bin\java.exe "-javaagent:D:\IT\IDEA\IntelliJ IDEA Community Edition 2020.1\lib\idea_rt.jar=50274:D:\IT\IDEA\IntelliJ IDEA Community Edition 2020.1\bin" -Dfile.encoding=UTF-8 -classpath D:\IT\NewProject\ScopeCheck\out\production\ScopeCheck my.gabin.com.Main
Scope, publicVar = 0. privateVar = 1 // call constructor
ScopeInstance privateVar is 1
this is private to main()
0 times tow is 0
1 times tow is 2
2 times tow is 4
3 times tow is 6
4 times tow is 8
5 times tow is 10
6 times tow is 12
7 times tow is 14
8 times tow is 16
9 times tow is 18
*********************************
InnerClass privateVar = 3 //call innerClass constructor // privateVar
InnerClass privateVar = 3 //this.privateVar
OuterClass privateVar = 1 //Scope.this.privateVar
0 times tow is 0 //InnerClass method
1 times tow is 2
2 times tow is 4
3 times tow is 6
4 times tow is 8
5 times tow is 10
6 times tow is 12
7 times tow is 14
8 times tow is 16
9 times tow is 18
Process finished with exit code 0
'JavaCode(review)' 카테고리의 다른 글
Static Statement (0) | 2020.06.29 |
---|---|
Account coding / access modifier 'private' example (0) | 2020.06.28 |
nSum(int n), factorial(int n) 계승, fibonacci(int n) 수열 코딩 (0) | 2020.06.27 |
자바 연산 (0) | 2020.06.27 |
Generics Challenge - 기본예제에 league 추가 (0) | 2020.06.24 |