zoukankan      html  css  js  c++  java
  • 动手动脑3

    int value=100;

    MyClass obj = new MyClass();

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

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

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

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

     

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

     

    输出结果:100   300

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

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

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

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

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

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

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

    package text;
    
    public class Employee {
                String name;
            long salary;
            short employee_id;
            static int total_employees;
            static void clear(){
                total_employees=0;
                Employee em = new Employee();
                em.salary = 500;
                em.name = "wjakfld";
                em.employee_id = 12;
            }
             
            public static void main(String[] args) {
                
            }
    
    
    
    }

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

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

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

    package text;
    public class TongJi {
        private static int count;
       
         public TongJi() {
            // TODO 自动生成的构造函数存根
             count++;
        }
        
         public static int getCount()
         {
             return count;
         }
       
           
       
        public static void main(String[] args) {
            // TODO 自动生成的方法存根
            TongJi t1 = new TongJi();
            TongJi t2 = new TongJi();
            TongJi t3 = new TongJi();
            System.out.println("你创建了" + getCount() + "个对象");
           
           
        }
    }
  • 相关阅读:
    Java GUI图形界面开发工具
    python操作MySQL数据库
    国外五大股票交易系统及其源码
    五个抄底摸高的交易系统和源代码
    海龟交易系统源码
    模式识别话题
    几种常见模式识别算法整理和总结
    比较好的开源人脸识别软件
    利用开源程序(ImageMagick+tesseract-ocr)实现图像验证码识别
    JSONObject与JSONArray的使用
  • 原文地址:https://www.cnblogs.com/adret/p/9827137.html
Copyright © 2011-2022 走看看