• 9、包、访问控制、import、static、static代码块、final、抽象类、接口、instanceof、多态


    1、包

      三级命名:公司的尾缀(com).公司名字(baidu).业务(Sale)

      java.lang:默认包:String、Math,Object,System

      java.util:工具包

      java.io:输入输出包

      java.net:网络开发包

      java.awt:图形界面开发包

      java.swing:也是图形界面开发包

    2、访问控制

      private:私有的:只能在自己的类中使用

      default: 默认的:同包中可以使用。当子类继承父类,实例化子类后,跨包不可以使用。

      protected:保护的:同包中可以使用,不同包时,子类继承父类,实例化子类后,挎包可以使用。

      public:公有的:可以在任何包类中使用

    3、静态关键字static

     static关键字用来修饰变量、方法、内部类称这些变量、方法和内部类为静态变量、静态方法、静态内部类,放在静态内存区;

      使用动态的时候,这些变量方法在对象实例化后,随时用随时创建,用完消失,所以为动态的。

      静态的随类产生,随类消亡,会占内存,对象不调用的时候也不消失。

      构造器不能使用static修饰,因为构造器参与new实例化动态创建,所以动静矛盾。

      什么时候用静态:当实例化好多对象时候,确认其中一个属性和方法其值不会改变(方法就是参数返回值一致),就可以将其定义为静态的

       用static声明的成员变量都将在静态内存区存储,不受实例化影响,随类而生随类而死,可以使用类.的形式调用。如果通过对象调用,其底层其实也是依据类.的形式调用;static的属性能够存储值,你不改变它,它就不变。

    4、静态初始化块

       

    public class C extends C0{
        private static int age;
        static{
            System.out.println(1);
        }
        {
            System.out.println(2);
        }
        C(){
            System.out.println(3);
        }
        public static void main(String[] args) {
            System.out.println(new C());
        }
    }
    class C0{
        static {
            System.out.println(4);
        }
        {
            System.out.println(5);
        }
        C0(){
            System.out.println(6);
        }
    }

    输出4 1 5 6 2 3

      父类中静态代码块>子类中静态代码块>父类动态代码块>父类构造器>子类静态代码块>子类构造器>子类方法

    5、final关键字

      final——用于类、方法、变量前

      final类不能被继承:常用的fanal太监类:String、Math;

      final方法不能被重写覆盖;

      final属性不能被更改。 

      

      常量声明:public static final double PI(常量用大写)= 3.1415926;

    6、abstact抽象:

      implements:实现 宿主

      A、有抽象方法的成员类一定是抽象类

      B、子类继承了抽象类,该子类要么实现抽象方法,要么自己本身是抽象类。

      C、抽象类不能实例化。

    7、interface接口

      java中为单根继承,灵活度不够。而类和接口可以多实现,接口之间可以多继承,接口不可以继承类!

      接口中默认为public,而不是default

     类可以先继承父类,再实现接口

    八、多态(polymorphism)——前提是继承

      java的引用变量有两个类型:一个是编译时的类型,一个是运行时的类型

        编译时的类型由声明该变量时使用的类型决定,运行时的类型由实际赋给该变量的对象决定,如果编译时类型和运行时类型不一致就出现多态。

      方法和变量的使用:子类重写父类的方法或同名的属性,按照子类走;子类没有的方法属性按父类走;子类新创建的属性和方法,无法使用;非要使用就是用强转(A是儿子,A0是父亲,plan()是新方法,((A)a1).plan())。

    用法:  

    1、虚方法:用引用变量类型对象的栈来限制该对象可以调用的方法;

    2、形参多态:在形参位置只写父类类型加变量,在调用时,在形参列表中实例化子类对象即可。

    3、返回值多态:可用来实例化对象,根据子类的对象类型,来通过父类类型,创建子类对象

    九、instanceof运算符

      可以使用该运算符得到对象的类型。

      判断一个对象时候是一个类的实现对象。

      判断一个对象时候实现了一个接口。

      a instanceof A;

  • 相关阅读:
    获取数据窗口的report对象 pb
    职业中的人与人。。。
    关于表格的设置
    今天学到的关于UI的一点东西
    给QQ发匿名消息
    这两天在改以前写的程序,很闷,记点流水账,:)
    我也要回家了,给大家道别
    时间过的好快啊,2月1号了,几个问题!
    开始新的一年的新生活..
    @dudu,临走问一下
  • 原文地址:https://www.cnblogs.com/television/p/8405090.html
Copyright © 2020-2023  润新知