• 自学JAVA-5:修饰符、对象初始化


    一、访问修饰符

    1、访问修饰符分四种:public(公共的)、protected(受保护的)、默认的(缺省的)、private(私有的)。
    public:该类或非该类均可访问。
    protected:该类及其子类的成员可以访问。
    默认的:相同数据包的类可以访问。
    private:只有该类可以访问。

    2、其他修饰符

    abstract修饰符
    如果一个方法只有方法定义,没有方法的具体实现,那么该方法称为抽象方法,用修饰符abstract定义;拥有抽象方法的类成为抽象类,也用修饰符abstract定义。
    抽象类不能直接实例化,抽象类变量只能指向子类对象。
    如果一个类继承一个抽象类,那么必须重写抽象类定义的抽象方法,否则编译错误。
    抽象方法必须由子类提供具体的实现,所以不能是私有的,抽象方法也不能是静态的,静态方法加载时在对象之前。

    二、对象初始化

    1、构造方法

    格式:public 类名(){}   无参构造

         public 类名(形参){}  带参构造

    构造方法作用:为对象分配空间;初始化成员变量;返回引用。

    用法:用于对对象初始化时对象属性的赋值。(构造方法可以根据情况重载使用)

    例题:面的方法哪些重载了构造方法?

    public class Test{

             public Test(int x){}

    }

      a、public Test(int y){}    形参一样,不构成重载。

      b、public Test(String y){}  方法名相同,形参类型不同,是重载。

      c、public void Test(String x){}  构造方法无返回类型,不构成重载。

      d、public int Test(int y,String x){}  同上。

      e、public Test(int y,String x){}  方法名相同,形参个数不同,是重载。

      f、public Test(String x,int y){}  方法名相同,形参个数(与选项e也构成重载,形参顺序不同)不同,是重载。

    2、构造方法修饰

    private修饰一个类的构造方法时,那么这个类将不能被继承。
    protected修饰一个类的构造方法时,表示该类的不同包的子类,可以调用该构造方法产生父类对象。
    注:子类重写父类的方法时,要求子类的访问修饰符要大于或等于父类。

    3、static静态块和实例化块

    static修饰的东西,加载时机都在对象之前。
    静态块:static{ }
    静态化块只在类加载时执行一次,一般用于一些初始化配置。(而构造方法是每产生一个对象,都会执行一次)
    实例化块:{ }
    实例化块在每个对象产生时都会执行一次,在super()之后执行。

     示例:

     1 public class StaticTest {
     2 
     3     public static void main(String[] args) {
     4          Y a = new Y();
     5          Y b = new Y();
     6 
     7     }
     8 
     9 }
    10 
    11 class X {
    12     static {
    13         System.out.println("X静态块");
    14     }
    15 
    16     public X() {
    17         System.out.println("X对象");
    18     }
    19 }
    20 
    21 class Y extends X {
    22     static {
    23         System.out.println("Y静态块");
    24     }
    25 
    26     {
    27         // 实例化块,在每个对象产生前都会执行一次,在super()之后执行
    28         System.out.println("实例化块");
    29     }
    30 
    31     public Y() {
    32         System.out.println("Y对象");
    33     }
    34 }
    35 
    36 
    37 执行结果:
    38 X静态块
    39 Y静态块
    40 X对象
    41 实例化块
    42 Y对象
    43 X对象
    44 实例化块
    45 Y对象
    静态块与实例块示例
  • 相关阅读:
    动态规划(DP),模拟
    递推,动态规划(DP),字符串处理,最佳加法表达式
    递归,动态规划,找最短路径,Help Jimmy
    动规,模拟,递推,最长公共子序列
    递归,递推,记忆化搜索,空间优化(数字三角形)
    递归,记忆化搜索,(棋盘分割)
    递归,搜索,回溯,最优路径(线段)
    web前端开发初学者必看的学习路线(附思维导图)
    一位资深程序员大牛给予Java初学者的学习路线建议
    假如时光倒流,我会这么学习Java
  • 原文地址:https://www.cnblogs.com/LYL6868/p/8845906.html
Copyright © 2020-2023  润新知