Java 内部类
来源:互联网 发布:s算法的基本特征 编辑:程序博客网 时间:2024/06/10 20:59
- 内部类的重要知识
class Outer{
private int a=1;
class Inner{
public void Info(){
System.out.println(a);
}
}
}
class ListSetMap {
public static void main(String[] args) {
new Outer.Inner().Info();
//这样编译不通过的}
}
会报错
---------- 编译javac ----------ListSetMap.java:12: 错误: 需要包含Outer.Inner的封闭实例new Outer.Inner().Info(); //这样是错误的写法^1 个错误不是静态类,因此不能使用“外部类.内部类”的形式。
所以只能通过调用外部类的来调用内部类的方法
class Outer{
private int a=1;
class Inner{
private int b=0; //定义b
public void Info(){
System.out.println(a);
}
}
public void fun()
new Inner().Info(); //生成Inner对象调用方法
System.out.println(new Inner().b); //继续访问private int b
}
}
class ListSetMap {
public static void main(String[] args) {
new Outer().fun(); //调用外部类的方法调用内部类
}
}
- 使用static来声明内部类(即可直接调用)-->解决上面的办法
class Outer{
private static int a=1;
static class Inner{
public void Info(){
System.out.println(a);
}
}
}
class ListSetMap {
public static void main(String[] args) {
new Outer.Inner().Info();
}
}
输出 1
- 在外部访问内部类
class Outer{
private int a=1; //封装变量
class Inner{
public void Info(){
System.out.println(a);
}
}
}
class ListSetMap {
public static void main(String[] args) {
Outer out=new Outer(); //实例化外部类对象
Outer.Inner in=out.new Inner(); //实例化内部类对象
in.Info(); //调用内部类的方法
}
}
输出 1
- 还能在方法中定义内部类
class Outer{
private int a=1;
public void fun(){
//此处若有参数 必须使用final定义class Inner{
public void Info(){
System.out.println(a);
}
}
new Inner().Info();
//实例化内部对象}
}
class ListSetMap {
public static void main(String[] args) {
new Outer().fun();
}
}
输出 1
0 0
- 【Java】【内部类】Java 内部类简介
- [Java] Java 内部类
- Java 内部类(成员内部类、局部内部类、静态内部类和匿名内部类)
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- Java内部类(成员内部类、局部内部类、静态内部类、匿名内部类)
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结
- java的内部类、匿名内部类、局部内部类
- java内部类之成员内部类、静态内部类
- java 成员内部类 局部内部类,匿名内部类
- Java 静态内部类/内部类
- java内部类、静态内部类 小结
- Java内部类,静态内部类
- JAVA 内部类与静态内部类
- java内部类--局部内部类
- Java 内部类以及匿名内部类
- 基础编程4-2
- php中初学者常见问题
- Qt 基础:国际化
- DayDayUP_linux运维学习_增加swap空间
- Leetcode no. 104
- Java 内部类
- Android WebView 开发详解(一)
- Python引用(import)文件夹下的py文件的方法
- 使用Sublime Text 3写Markdown
- iOS中最常用的设计模式MVC。
- Java 单例设计模式——构造方法私有化
- UVa 11292 - Dragon of Loowater(排序贪心)
- zoj-3936-Apples and Ideas
- 方法中参数传递的机制