Java内部类手机专卖店_JAVA内部类

1.成员内部类。类A中定义另一个类B,类B定义的方法中可以访问类A的私有属性。

package com.oop.demo10;

public class Application {

public static void main(String[] args) {

System.out.println();

new Outer().getId();

Outer o1 = new Outer();

o1.getId();

Outer.Inner i1 = o1.new Inner();

i1.innerPrint();

i1.setId(19);

i1.innerPrint();

}

}

package com.oop.demo10;

public class Outer {

private int id = 10;

public int getId() {

System.out.println(id);

return id;

}

public void setId(int id) {

this.id = id;

}

//成员内部类

public class Inner{

private int id = 11;

public int getId() {

return id;

}

public void setId(int id) {

Outer.this.id = id;

}

public void innerPrint(){

System.out.println(id);

System.out.println(Outer.this.id);

}

}

}

2. 一个类文件中可以写多个类的定义,但是只能有一个public class

package com.oop.demo10;

public class Application {

public static void main(String[] args) {

OuterTwice outerTwice = new OuterTwice();

System.out.println(outerTwice.getId());

A a = new A();

System.out.println(a.getId());

}

}

package com.oop.demo10;

public class OuterTwice {

private int id = 10;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

}

//类文件中定义的另一个类,不能是public class

class A{

private int id = 11;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

}

3. 类定义的文件中,可以定义interface, 类的定义中可以new interface!这个“new的interface"实际上是实现了这个接口的一个内部类。

package com.oop.demo10;

public class OuterTwice {

private int id = 10;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

interfacetest i2 = new interfacetest() {

@Override

public void test1() {

}

};

}

class A{

private int id = 11;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

interfacetest i1 = new interfacetest() {

@Override

public void test1() {

}

};

}

interface interfacetest{

void test1();

}

4. static成员类,可以访问外部类的static成员

package com.oop.demo10;

public class Application {

public static void main(String[] args) {

OuterThird outerThird = new OuterThird();

System.out.println(outerThird.getId());

OuterThird.inner3 inner3 = new OuterThird.inner3();

System.out.println(inner3.getid());

inner3.printInner();

}

}

package com.oop.demo10;

public class OuterThird {

private int id = 100;

private static int id2 = 102;

public int getId() {

return id;

}

//内部静态类

public static class inner3{

private int id = 101;

public int getid(){

return this.id;

}

public void printInner(){

System.out.println(OuterThird.id2);

}

}

}

5. 类的method中也可以定义class,局部内部类

package com.oop.demo10;

public class outerForth {

private int id = 201;

public void outer4(){

class B{

private int id = 202;

public void getId() {

System.out.println(id);

System.out.println(outerForth.this.id);

}

public void setId(int id) {

this.id = id;

}

}

}

}

6. 没有名字的对象

package com.oop.demo10;

public class Application {

public static void main(String[] args) {

//类的实例化没有名字,直接调用方法

new Orange().print();

}

}

package com.oop.demo10;

public class OuterFifth {

}

class Orange{

public void print(){

System.out.println("This is an orange.");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值