• Java课堂作业03


    一 课后作业

    使用类的静态字段和构造方法,跟踪类所创建的对象的个数

    package test;
    public class Findclass
    {
    static int value=0;
    public Findclass()
    {
    value++;
    }
    public static void main(String[] args)
    {
    Findclass num1=new Findclass();
    Findclass num2=new Findclass();
    System.out.println("你已经创建了"+Findclass .value+"个对象");
    }

    }

    二 动手动脑

    java字符段初始化规律:

    public class InitializeBlockDemo {

    /**
    * @param args
    */
    public static void main(String[] args) {

    InitializeBlockClass obj=new InitializeBlockClass();
    System.out.println(obj.field);

    obj=new InitializeBlockClass(300);
    System.out.println(obj.field);
    }

    }

    class InitializeBlockClass{
    //下面这句在初始化块之前与之后,会影响到field字段的初始值
    //public int field=100;

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

    }
    }

    如果在主函数中创建对象时没有形参,在类中定义了公共的变量并给与了赋值,那么就会把值赋给主函数中的变量,再调用类中的默认构造函数。

    如果在主函数中创建对象时有形参,则调用类中对应的构造函数。

    静态初始化块的执行顺序:

    静态初始化块只执行一次;

    先执行父类再执行子类;

    创建子类型的对象时,也会导致父类型的静态初始化块的执行。

    如何在静态方法中访问类的实例成员

    先在静态方法中生成一个对象,用对象访问实例成员

    package test;

    public class Classtest4
    {
    static int x=1;
    int y=2;
    static public void set()
    {
    Classtest4 a=new Classtest4 ();
    System.out.println("id:"+x);
    System.out.println("age:"+new Classtest4().y);
    }

    public static void main(String[] args)
    {
    Classtest4 .set();
    }

    }

    Integer的“诡异”特性

    public class StrangeIntegerBehavior 
    {

    public static void main(String[] args)

    Integer i1=100; 
    Integer j1=100;
    System.out.println(i1==j1);

    Integer i2=129; 
    Integer j2=129; 
    System.out.println(i2==j2);

    }

    }

    两对整数完全一样,一个输出true,一个输出false

    在用Inter j1=number;时调用了public static Integer valueOf(int i)方法,这个方法对于-128<=i<=127的时候是使用的int原始数据类型,超出这个范围后则创建一个对象。所以i1和j1比较的是数值,i2和j2比较的是地址。

  • 相关阅读:
    Redmine入门-安装
    【Spring Cloud笔记】 Eureka通过集群实现高可用
    【SpringBoot笔记】SpringBoot整合Druid数据连接池
    【Spring Cloud笔记】 断路器-hystrix
    【Spring Cloud笔记】Eureka注册中心增加权限认证
    Jenkins实现简单的CI功能
    【SpringBoot笔记】SpringBoot如何正确关闭应用
    Activi相关表归纳
    阿里云MySQL远程连接不上问题
    Storm入门-Storm与Spark对比
  • 原文地址:https://www.cnblogs.com/sakura--/p/7688991.html
Copyright © 2020-2023  润新知