内部类

使用内部类可以方便的访问外部内私有成员(属性,方法),但是会使得代码变得非常的混乱。
内部了跌实例化方法:
1.在外部内中使用一个方法放回内部类的一个实例,在主方法中实例化内部类的时候,是有实例化外部类,在用外部类.方法,得到内部类的一个实例。
package test;

public class OuterDemo01 {
private int age=23;
class Inner{
public void printAge(){
System.out.println(age);
}
}
public Inner getInner(){
return new Inner();
}
public static void main(String[] args){
OuterDemo01 out=new OuterDemo01();
Inner in=out.getInner();
in.printAge();
}
}



2.先实例化外部类,再通过外部类.内部类实例化内部类

package test;

public class OuterDemo02 {
private int age=23;
class InnerDemo02{
public void printAge(){
System.out.println(age);
}
}
public static void main(String[] args){
OuterDemo02 out=new OuterDemo02();
OuterDemo02.InnerDemo02 in=out.new InnerDemo02();
in.printAge();
}
}



3.使用static关键字声明的内部类,则此内就将成为外部内类,可以直接通过外部类.内部类访问.

package test;

public class OuterDemo03 {
private static int age=23;
static class InnerDemo03{
public void printAge(){
System.out.println(age);
}
}
public static void main(String[] args){
OuterDemo03 out=new OuterDemo03();
OuterDemo03.InnerDemo03 in=new OuterDemo03.InnerDemo03();
in.printAge();
}
}



4.在方法中定义的内部类,可以直接访问外部类中的各个成员,但是如果要访问方法中的参数,则参数上要使用final关键字声明。

package test;

public class OuterDemo04 {
private int age = 23;

public void fun() {
class InnerDemo04 {
public void printAge() {
System.out.println(age);
}
}
new InnerDemo04().printAge();
}

public static void main(String[] args) {
new OuterDemo04().fun();
}
}




package test;

public class OuterDemo05 {
private int age = 23;

public void fun(final int temp) {
class InnerDemo04 {
public void printAge() {
System.out.println(temp);
System.out.println(age);
}
}
new InnerDemo04().printAge();
}

public static void main(String[] args) {
new OuterDemo05().fun(24);
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值