zoukankan      html  css  js  c++  java
  • 参数返回值、权限修饰符和内部类

    1:形式参数和返回值的问题(理解)
    (1)形式参数:

    1.基本类型
    2.引用类型
      类名:需要的是该类的对象。(匿名对象已经讲过)
      抽象类:需要的是该抽象类的子类对象。
      接口:需要的是该接口的实现类对象。


    (2)返回值类型

    1.基本类型
    2.引用类型
      类:返回的是该类的对象。
      抽象类:返回的是该抽象类的子类对象。
      接口:返回的是该接口的实现类对象。


    (3)链式编程
    对象.方法1().方法2().......方法n();

    这种用法:其实

    • 方法1()调用完毕后,应该一个对象;
    • 方法2()调用完毕后,应该返回一个对象。
    • 方法n()调用完毕后,可能是对象,也可以不是对象。

    2:包(理解)
    (1)其实就是文件夹
    (2)作用:
    A:区分同名的类
    B:对类进行分类管理
      a:按照功能分
      b:按照模块分
    (3)包的定义(掌握)
    package 包名;
        多级包用.分开。
    (4)注意事项:(掌握)

    • A:package语句必须在文件中的第一条有效语句
    • B:在一个java文件中,只能有一个package
    • C:如果没有package,默认就是无包名

    (5)带包的编译和运行
    A:手动式
    B:自动式(掌握)
    javac -d . HelloWorld.java

    3:导包(掌握)
    (1)我们多次使用一个带包的类,非常的麻烦,这个时候,Java就提供了一个关键字import。
    (2)格式:
    import 包名...类名;
      另一种:
    import 包名...*;(不建议)
    (3)package,import,class的顺序
      package > import > class

    4:权限修饰符(掌握)
    (1)权限修饰符

    (2)这四种权限修饰符在任意时刻只能出现一种。

      public class Demo {}

    5:常见的修饰符(理解)
    (1)分类:
    权限修饰符:private,默认,protected,public
    状态修饰符:static,final
    抽象修饰符:abstract
    (2)常见的类及其组成的修饰

    类:
      权限修饰符:default,public
      状态修饰符:final
      抽象修饰符:abstract
      用的最多的:public

    成员变量:
      权限修饰符:default,public
      状态修饰符:final
      抽象修饰符:不可以
      用的最多的:private

    构造方法:
      权限修饰符:private,default,protected,public
      状态修饰符:不可以
      抽象修饰符:不可以
      用的最多的:public

    成员方法:
      权限修饰符:private,default,protected,public
      状态修饰符:static,final
      抽象修饰符:abstract
      用的最多的:public

    (3)另外比较常见的:
    public static final int X = 10;
    public static void show() {}
    public final void show() {}
    public abstract void show();

    6:内部类(理解)
    (1)把类定义在另一个类的内部,该类就被称为内部类。
      举例:把类B定义在类A中,类B就被称为内部类。
    (2)内部类的访问规则

    • 可以直接访问外部类的成员,包括私有
    • 外部类要想访问内部类成员,必须创建对象

    (3)内部类的分类

    • 成员内部类
    • 局部内部类

    (4)成员内部类

    • private 为了数据的安全性
    • static 为了访问的方便性


    成员内部类不是静态的:
    外部类名.内部类名 对象名 = new 外部类名.new 内部类名();

      Outer.Inner oi = new Outer().new Inner();
    成员内部类是静态的:
    外部类名.内部类名 对象名 = new 外部类名.内部类名();

      Outer.Inner oi = new Outer.Inner();
    (5)成员内部类的面试题(填空)
    30,20,10

    class Outer {
        public int num = 10;
    
    class Inner {
        public int num = 20;
    
           public viod show() {
               int num = 30;
    
              System.out.println(num);
              System.out.println(this.num);
              System.out.println(Outer.this.num);
            }
        }
    }

    (6)局部内部类
    A:局部内部类访问局部变量必须加final修饰。
    B:为什么呢?
      因为局部变量使用完毕就消失,而堆内存的数据并不会立即消失。
      所以,堆内存还是用该变量,而改变量已经没有了。
      为了让该值还存在,就加final修饰。
      通过反编译工具我们看到了,加入final后,堆内存直接存储的是值,而不是变量名。
    (7)匿名内部类(掌握)
    A:是局部内部类的简化形式
    B:前提
      存在一个类或者接口。
    C:格式:

    new 类名或者接口名() {
          重写方法;
    };

    D:本质:

    实是继承该类或者实现接口的子类匿名对象
    (8)匿名内部类在开发中的使用
      我们在开发的时候,会看到抽象类,或者接口作为参数。
      而这个时候,我们知道实际需要的是一个子类对象。
      如果该方法仅仅调用一次,我们就可以使用匿名内部类的格式简化。

    interface Person {
           public abstract void study();
    }
    
    class PersonDemo {
           public void method(Person p) {
                 p.study();
       }
    }
    
    class PersonTest {
         public static void main(String[] args) {
            PersonDemo pd = new PersonDemo();
            pd.method(new Person() {
         public void study() {
             System.out.println("好好学习,天天向上");
                  }
             });
        }
    }


    (9)匿名内部类的面试题(补齐代码)

    interface Inter {
          void show();
    }
    
    class Outer {
           //补齐代码
          public static Inter method() {
               return new Inter() {
                   public void show() {
                       System.out.println("HelloWorld");
                     }    
                };
          }
    }
    
    class OuterDemo {
            public static void main(String[] args) {
                  Outer.method().show(); //"HelloWorld"
         }
    }
  • 相关阅读:
    人机交互设计 课后作业--评价正在使用的输入法
    站立会议10--个人总结
    站立会议09--个人总结
    08个人总结
    站立会议07--个人总结
    站立会议06--个人总结
    站立会议05--个人总结
    软件工程概论-合作作业01
    软件工程概论-个人作业04
    学习进度(第四周)
  • 原文地址:https://www.cnblogs.com/crazypokerk/p/9021301.html
Copyright © 2011-2022 走看看