当前位置: 首页> 游戏> 评测 > vi形象设计_网站建设团队介绍怎么写_营销网站搭建_n127网推广

vi形象设计_网站建设团队介绍怎么写_营销网站搭建_n127网推广

时间:2025/7/9 23:27:48来源:https://blog.csdn.net/2302_79648928/article/details/143582883 浏览次数:0次
vi形象设计_网站建设团队介绍怎么写_营销网站搭建_n127网推广

类的5大成员:属性,方法,构造器,代码块,内部类 

1.内部类的分类

(1)定义在外部类局部位置上(比如:方法内)

1)局部内部类(有类名)

样例如下:

package com.temporary.mid_term;class Outer1 {private int a = 1;public void m1(){System.out.println("方法m1被调用");};public void m2() {class Inner {public void f1() {m1();//直接调用System.out.println("a=" + a);}//局部内部类可以访问外部类的所有成员,包括私有的}}//内部类结束
//创建对象Inner inner = new Inner();inner.f1();{//代码块也可以定义内部类}}}
}
public class Outer{public static void main(String[] args) {Outer1 outer = new Outer1();outer.m2();}
}

测试结果:

 

细节如下:

1.可以直接访问外部类所有成员

2.不能添加访问修饰符,相当于局部变量,但是可以用final修饰,就是不能用public,加了final就不能被继承

3.作用域:仅仅定义在它的方法或代码块中

4.外部类可以创建局部类的对象,然后调用方法即可

5.外部其他类例如main不能访问局部内部类

6.如果外部类和局部内部类的成员重名时,默认遵循就近原则,如果想访问外部类的成员,可以使用(外部类名.this.成员)

例如我在内部类再次定义属性a=10,再调用时就是输出a=10,如果我一定要访问外部类的属性a;可以用Outer1.this.a的形式,谁调用了m1,谁就是Outer2.this

2)匿名内部类(Anonymous Class无类名)重点!!!

细节如下:

1.基本语法:new 类或接口(参数列表)

2.匿名内部类只使用一次

3.语法:

new 类/接口(参数列表){

};

测试用例:

package com.temporary.mid_term;public class AnonymousInnerClass {public static void main(String[] args) {Outer2 outer = new Outer2();
outer.method();}
}class Outer2<Amimal> {//外部类private int a = 10;public void method(){//基于接口的匿名内部类//想使用IA接口,传统方式就是写一个类实现该接口,创建对象//如果我只想实现一次的话比如Animal接口很多动物都要实现就得创建很多类很多//可以用内部类用来简化IA tiger = new IA() {//运行类型是匿名内部类,编译类型是IA@Overridepublic void cry() {System.out.println("匿名内部类重写了cry方法");}};System.out.println("tiger的运行类型=" + tiger.getClass());tiger.cry();//重写了要重新调用才能实现目的//基于类的匿名内部类Father father = new Father("jack"){@Overridepublic void Test() {System.out.println("匿名内部类重写了test方法");}};//带分号System.out.println("father的运行类型=" + father.getClass());father.Test();Animal  animal = new Animal(){@Overridepublic void eat() {System.out.println("小狗吃骨头");}};animal.eat();System.out.println(animal.getClass());}interface IA{
public void cry();}class Father{
public Father(String name){System.out.println("name=" + name);
}
public void Test(){System.out.println(123);}}//再定义一个抽象类abstract class Animal{public Animal() {}
//抽象方法中没有方法体abstract void eat();}}

3)成员内部类(没有static修饰)

简述:成员内部类式定义在外部类的成员位置,并且没有static修饰

细节:

1.可以直接访问外部类的所有成员,包括私有的

2.可以添加任意修饰符(四个)

3.作用域:成员内部类访问外部类成员(直接访问),外部类访问成员内部类(创建对象再访问),外部其他类访问成员内部类:

Outer01 outer01 = new Outer01();

Inner01 inner01 = outer01.new Inner01();

//

Inner01 inner01 = new Outer().new Inner01();

//使用一个方法获取

Inner inner01 = new Outer01().getInner01();

 代码样例:


public class Inner01 {//内部类private int n1 = 10;public String name = "张三";//成员内部类class Inner02{public void say(){System.out.println("n1=" + n1 + " ,name=" + name);}}//写方法public void t1(){Inner02 inner02 = new Inner02();inner02.say();}}

4)静态内部类(使用static修饰)

介绍:静态内部类就是定义在外部类的所有静态成员,并且有static修饰

细节:

1.可以直接访问外部类的所有静态成员,包括私有的,但是不能直接访问非静态成员

2.可以访问任意修饰符,其地位就是一个成员

3.外部其他类怎么访问???

Outer01 .Inner01 j = new Outer01.inner01();//前提式满足访问权限,内部类不能私有

关键字:vi形象设计_网站建设团队介绍怎么写_营销网站搭建_n127网推广

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: