人和兽做的网站视频个人网站做百度竞价

当前位置: 首页 > news >正文

人和兽做的网站视频,个人网站做百度竞价,网站设计与编辑,别人盗用我的网站备案号怎么办目录 简略版#xff1a; 详解版#xff1a; 使用场景#xff1a; 内部类的优点#xff1a; 内部类的分类#xff1a; 一. 成员内部类 1.创建对象 2.访问方法 3. 外部类名.this.
二. 静态内部类

  1. 创建对象
  2. 访问特点 三. 局部内部类 四. 匿名内部类 …目录 简略版 详解版       使用场景 内部类的优点 内部类的分类 一. 成员内部类 1.创建对象 2.访问方法 3. 外部类名.this.  二. 静态内部类
  3. 创建对象
  4. 访问特点 三. 局部内部类 四. 匿名内部类
  5. 格式
  6. 作用
  7. 本质
  8. 使用场景 简略版 1.简述ava的类中有五大组成部分分别是成员变量成员方法构造函数构造器代码块内部类大多数情况下类与类之间在位置上是平行的独立的而内部类是在一个类中添加另一个类相当于类的“嵌套”。 2.使用场景一个类中包含另一个事物该事物也有自己的方法和属性我们就可以将它定义为内部类 3.优点隐藏程序的细节和内部结构提高程序的封装性使结构看起来更加优美且合理 4.分类根据内部类的位置我们分为静态内部类成员内部类局部内部类匿名内部类 详解版       java的类中有五大组成部分分别是成员变量成员方法构造函数构造器代码块内部类  今天就讲讲内部类。大多数情况下类与类之间在位置上是平行的独立的而内部类是在一个类中添加另一个类相当于类的“嵌套”。 使用场景 一个类中包含另一个事物该事物也有自己的方法和属性我们就可以将它定义为内部类 如下代码所以定义了一个汽车类“嵌套”了一个引擎类该类也有自己的的方法和属性 class Motor{//汽车类class Engine{//发动机类String size;//发动机型号public void spin(){//发动机的行为/作用System.out.println(转速很快的);}} } 而这种内部类的创建就没有任何意义因为Weight类没有自己的方法和行为  class Animal{//定义一个动物类class Weight{//“嵌套”一个重量类} } 内部类的优点 隐藏程序的细节和内部结构提高程序的封装性使结构看起来更加优美且合理 内部类的分类 根据内部类的位置我们分为静态内部类成员内部类局部内部类匿名内部类 一般类该有的内部类也都有比如成员变量成员方法构造器等。 下面的代码可以辅助理解 class A{int b10;//成员变量class B{};//成员内部类与成员变量统一等级static int c10;//静态变量static class C{};//静态内部类void method(){int d7;//局部变量class D{};//局部内部类} } 内部类与成员变量成员方法同等级 对于非静态内部类其作用与成员变量成员方法相同由于是非静态的所以需要使用类的对象才能调用所以创建内部类的对象不同于创建普通类的 public class OuterClass {//成员变量String name;//成员方法public void play(){System.out.println(这是外部类的方法);}//内部累与成员变量成员方法同等级class InnerClass{int age;public void eat(){System.out.println(这是内部类的方法);}}public static void main(String[] args) {OuterClass onew OuterClass();o.play();OuterClass.InnerClass io.new InnerClass();i.eat();} }这是外部类的方法 这是内部类的方法进程已结束,退出代码0见名知意通过类的名字我们知道不同的类所处范围不同作用范围不同这就是不同内部类的本质区别 一. 成员内部类 与类的成员变量成员方法所处等级相同且在使用时与类的成员变量成员方法使用也相同需要先创建类的对象再进行调用 1.创建对象 外部类名.内部类名 对象名 new 外部类名(). new 内部类名() Outer1.Inner inew Outer1().new Inner();//内部类对象的创建2.访问方法 内部类实例方法直接使用其外部类实例/静态成员实例成员即 无static 修饰的方法或属性静态成员即 static 修饰的方法或成员 void inner(){//这是内部类的无实例方法int a10;//内部类局部方法System.out.println(a);System.out.println(this.a);//内部类成员变量System.out.println(Outer1.this.a);//外部类成员变量外部类名 点 this 点 变量名} 3. 外部类名.this.  System.out.println(Outer1.this.a);//外部类成员变量外部类名 点 this 点 变量名 下面的代码将给予说明 public class Outer1 {int a100;void outer(){System.out.println(这是方法);}class Inner{int a50;void inner(){int a10;System.out.println(a);System.out.println(this.a);System.out.println(Outer1.this.a);//直接使用外部类成员变量}public static void main(String[] args) {Outer1.Inner inew Outer1().new Inner();//内部类对象的创建i.inner();}} }二. 静态内部类 在成员内部类的基础上被关键字static修饰 1. 创建对象 外部类名.内部类名 对象名   new 外部类名.内部类名 Outer2.Inner inew Outer2.Inner();//内部类对象的创建 2. 访问特点 内部类的实例化方法可以直接访问外部类静态成员不能直接访问外部类实例化成员 void inner(){//这是内部类的无实例方法// System.out.println(a);//不可以直接访问外部类的静态成员System.out.println(b);//可以直接访问外部类的静态成员} 下面将给予代码进行说明 class Outer2 {int a100;static int b200;//外部类静态成员变量static class Inner{//静态内部类void inner(){//这是内部类的无实例方法// System.out.println(a);//不可以直接访问外部类的静态成员System.out.println(b);//可以直接访问外部类的静态成员}public static void main(String[] args) {Outer2.Inner inew Outer2.Inner();//内部类对象的创建i.inner();}} } 三. 局部内部类 与局部方法的位置相同定义在方法体中该内部类几乎用不到了解即可 class Outer3{void inner(){//这是外部类的方法class Inner{//内部类int a19;void play(){System.out.println(这是内部类的方法);}}Inner inew Inner();//内部类的对象创建i.play();}public static void main(String[] args) {Outer3 out new Outer3();out.inner();} } 四. 匿名内部类 匿名内部类是一种i特殊的局部内部类匿名是指该类没有名字
  9. 格式 new 抽象类/接口名{                         重写抽象方法               } 2. 作用 匿名内部类是抽象类/接口的子类使用它可以不需要写实现类直接调用接口降低代码的冗余性 下面将给予代码进行说明 class S{public static void main(String[] args) {//new Inter() {//new出来的是接口的实现类对象相当于创建对象的等号右边而左边是名字这里没有即匿名Inter inew Inter(){//也可以使用多态接收该实现类对象这里不是创建接口对象接口不能创建对象Overridepublic int sum(int x, int y) {//重写方法return xy;}};//注意这里的分号毕竟是new对象int ai.sum(10,50);//调用方法System.out.println(a);}} //接口 interface Inter{int sum(int x,int y);//抽象方法public abstract 可以省略不写 } 3. 本质 其本身就是接口/抽象类的实现类对象 4. 使用场景 在开发中匿名内部类作为方法的参数进行传输 下面将给予代码进行说明 程序从main方法开始执行调用含参成员方法UseInter将参数即内部类内部类实质就是接口/抽象类子类对像传入成员方法的有参变量inter调用内部类中的重写的接口的sum方法 class S{//方法的参数如果是一个接口调用此方法需要传入该接口的实现类对象static void UseInter(Inter inter){//成员方法int ainter.sum(10,30);System.out.println(a);}public static void main(String[] args) {//调用方法相当于UseInter(a),a即内部类匿名内部类本质是实现类的对象//因为UserInter方法的参数是一个接口调用此方法需要传入该接口的实现类对象UseInter(new Inter(){Overridepublic int sum(int x, int y) {//重写方法return xy;}});} } //接口 interface Inter{int sum(int x,int y);//抽象方法public abstract 可以省略不写 }