zoukankan      html  css  js  c++  java
  • 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比较的是地址。

  • 相关阅读:
    LeetCode-434-字符串中的单词数
    LeetCode-415-字符串相加
    字符串
    序列
    元组
    列表
    repr()与str的区别
    输出函数print()
    输入函数input()
    MySQL中快速复制数据表方法汇总
  • 原文地址:https://www.cnblogs.com/sakura--/p/7688991.html
Copyright © 2011-2022 走看看