首页 > 其他 > 详细

第三次上课 PPT 课后测试

时间:2015-10-18 01:09:16      阅读:253      评论:0      收藏:0      [点我收藏+]

第一个:

class InitiallizeBlockClass
{
    {
        field=200;
    }
    public int field=100;
    public InitiallizeBlockClass(int value)
    {
        this.field=value;
    }
    public InitiallizeBlockClass()
    {
        
    }
}

public class Example {
    public static void main(String args[])
    {
        InitiallizeBlockClass obj=new InitiallizeBlockClass();
        System.out.println(obj.field);
        
        obj=new InitiallizeBlockClass(300);
        System.out.println(obj.field);
    }
}

输出结果:

技术分享

Java字段初始化规律:若一个之前后被赋值两次,那么前一次的赋值会被第二次所覆盖。

 

第二个:

class people
{
    public String species;
    {
        species="Human";
    }
}

class man extends people
{
    
}

public class Example {
    public static void main(String args[])
    {
        man m=new man();
        System.out.println(m.species);
    }
}

People为父类,man为子类,子类中并未进行定义,但是可以输出结果,而且结果是在父类中定义的结果。所以当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行,成立。

 

第三个:

class Root
{
    static{
        System.out.println("Root的静态初始化块");
    }
    {
        System.out.println("Root的普通初始化块");
    }
    public Root()
    {
        System.out.println("Root的无参数的构造器");
    }
}
class Mid extends Root
{
    static{
        System.out.println("Mid的静态初始化块");
    }
    {
        System.out.println("Mid的普通初始化块");
    }
    public Mid()
    {
        System.out.println("Mid的无参数的构造器");
    }
    public Mid(String msg)
    {
        //通过this调用同一类中重载的构造器
        this();
        System.out.println("Mid的带参数构造器,其参数值:" + msg);
    }
}
class Leaf extends Mid
{
    static{
        System.out.println("Leaf的静态初始化块");
    }
    {
        System.out.println("Leaf的普通初始化块");
    }    
    public Leaf()
    {
        //通过super调用父类中有一个字符串参数的构造器
        super("Java初始化顺序演示");
        System.out.println("执行Leaf的构造器");
    }

}

public class TestStaticInitializeBlock
{
    public static void main(String[] args) 
    {
        new Leaf();
        

    }
}

输出结果:

技术分享

静态初始化块的执行顺序:先执行static的赋值,之后再从上到下,依次进行各个类的赋值。

 

第四个:

class Employee
{
    String name;
    long salary;
    static void information(Employee e)
    {
        System.out.println("姓名为:"+e.name);
        System.out.println("薪水为:"+e.salary);
    }
}

public class Example {
    public static void main(String args[])
    {
        Employee e=new Employee();
        e.name="Hui";
        e.salary=5000;
        e.information(e);
    }
}

输出结果:

技术分享

静态方法中只允许访问静态数据,在静态方法中访问类的实例成员的话,就先实例化类,得到一个实例变量,将要使用的类作为参数传递给静态方法。

 

第三次上课 PPT 课后测试

原文:http://www.cnblogs.com/Daddy/p/4888624.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!