java高階玩法
阿新 • • 發佈:2022-01-09
java高階玩法
內部類通過外部類來例項化 :
package com.yuanyu.Demo08;
public class Outer { //外部類
private int id;
public void out(){
System.out.println("Outer");
}
class Inner{ //內部類
public void in(){
System.out.println("Inner");
}
}
}
package com.yuanyu.Demo08; public class Application { public static void main(String[] args) { Outer outer = new Outer(); //通過外部類來例項內部類 Outer.Inner inner = outer.new Inner(); inner.in(); //Inner } }
內部類可以獲取外部類的私有屬性和方法 :
package com.yuanyu.Demo08; public class Outer { //外部類 private int id=10; public void out(){ System.out.println("Outer"); } class Inner{ //內部類 public void in(){ System.out.println("Inner"); } public void getId(){ System.out.println(id); } } }
package com.yuanyu.Demo08;
public class Application {
public static void main(String[] args) {
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
//內部類可以獲取外部類的私有屬性
inner.getId(); //10
}
}
一個java類中只能有public class類,但是可以有多個class類
區域性內部類(定義在方法中的類):
package com.yuanyu.Demo08; public class Outer { //外部類 public void out(){ class Inner{ //區域性內部類 public void in(){ } } } }
匿名物件的使用:
package com.yuanyu.Demo08;
public class Test {
public static void main(String[] args) {
new Apple().eat(); //沒有名字初始化類,不用將例項儲存到變數中
}
}
class Apple{
public void eat(){
System.out.println("eat apples");
}
}
用類來實現介面:
package com.yuanyu.Demo08;
public class Test {
public static void main(String[] args) {
UserService userService = new UserService() { //實現介面的類(匿名類)
@Override
public void hello() {
}
};
}
}
interface UserService{
void hello();
}