zoukankan      html  css  js  c++  java
  • 动手动脑(三)

    int value=100;

    MyClass obj = new MyClass();

    定义的两个变量不一样,前者是一个原始数据变量,而后者是引用一个对象的变量,称为“引用类型的变量”简称“对象变量”。

    对象变量也可以使用==”判断两变量值是否相等吗?

       对象变量不适用==”来判断两变量的只相等,因为当“==”施加于引用类型变量时,是比较这两个变量是否引用同一个变量,即“==”实际上相当于比较这两个引用类型变量中保存的对象地址相同。

    以下代码为何无法通过编译?哪儿出错了?

     

    原因:类中提供了一个自定义的构造方法,所以系统不再提供默认的构造方法,由于没有具替代的参数类型也无法调用定义的构造函数,所以无法通过编译。

     

    输出结果:100   300

    Java字段初始化的规律:类的初始化块不接受任何的参数,而且只要创建一个类对象他们就会被执行。执行类成员定义时指定的默认值或类的初始化块,在执行过程中是按照其生命历程的顺序执行的,即先执行哪一个就要看他的先后顺序。

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

    1. 首先调用类中的静态初始化字段
    2. 调用类中的普通的无参数的构造函数
    3. 调用类中带有参数的构造函数
    4. 执行其自身的执行函数

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

    注意:在调用过程中都是先调用父类中的构造函数再调用子类的。

    如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)?

    答:在这个静态方法中创建类对象,通过对象来调用类中的实例成员。

     1 package text;
     2 
     3 public class Employee {
     4             String name;
     5         long salary;
     6         short employee_id;
     7         static int total_employees;
     8         static void clear(){
     9             total_employees=0;
    10             Employee em = new Employee();
    11             em.salary = 500;
    12             em.name = "wjakfld";
    13             em.employee_id = 12;
    14         }
    15          
    16         public static void main(String[] args) {
    17             
    18         }
    19 
    20 
    21 
    22 }

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

    Intteger是一个类,是int的扩展,定义了很多的转换方法,当Java在编译Integer a = 100时被翻译成-> Integer a = Integer.valueOf(100);比较时仍然是对象的比较,而jdk为了提高效率初始化了-128~127之间的整数对象,所以在赋值的这个范围内还是同一个对象是相等的。

    使用类的静态字段和构造函数,可以跟踪某个类所创建对象的个数。请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象”

     1 package text;
     2 
     3 public class TongJi {
     4     private static int count;
     5     
     6      public TongJi() {
     7         // TODO 自动生成的构造函数存根
     8          count++;
     9     }
    10      
    11      public static int getCount()
    12      {
    13          return count;
    14      }
    15     
    16         
    17     
    18 
    19     public static void main(String[] args) {
    20         // TODO 自动生成的方法存根
    21         TongJi t1 = new TongJi();
    22         TongJi t2 = new TongJi();
    23         TongJi t3 = new TongJi();
    24         System.out.println("你创建了" + getCount() + "个对象");
    25         
    26         
    27     }
    28 
    29 }
  • 相关阅读:
    for...else...
    js 代码运行中插入交互
    八皇后问题(python)
    多层for循环转递归/迭代
    迭代器/可迭代对象/生成器
    js,python,go 协程对比
    Promise精简总结
    PyQt常用组件用法总结
    PyQt5 接入 web 登录页
    C++求整型数组的和
  • 原文地址:https://www.cnblogs.com/1gaoyu/p/9822702.html
Copyright © 2011-2022 走看看