zoukankan      html  css  js  c++  java
  • 2020.10.9收获

    学习内容:

    变量的初始化:在定义变量时,Java要求必须显式初始化变量

    对象变量的初始化:对象变量如果不引用一个真实的对象,则必须声明为null;

    注:特殊值null代表一个对象变量不引用任何对象

    引用对象后的对象变量

    MyClass obj = new MyClass();

    当对象不再使用时,JVM会回收MyClass对象所占用的内存,这个过程称为“垃圾回收”

    理解赋值“=”的含义

    独特的对象引用:this

    对象中所有数据字段都是通过this指针间接引用的

    同一类中的方法可以相互调用,或者直接存取本类定义的字段,可看成其中隐含了一个this调用

    作为常量的对象变量

    可以使用final定义一个“常量”对象变量

    final MyClass obj = new MyClass();

    注意:“常量”对象变量不能指向另一个对象,但可以修改对象,比如设置它所引用对象的某共有字段值

    对象判等

    对于原始数据类型的变量(比如int),可以直接使用“==”判断两变量值是否相等

    重写基类的equals 方法

    class MyTestClass{
        public int Value;
        @Override
        public boolean equals(Object obj){
            return ((MyTestClass) obj).Value == this .Value;
            }
    
         public MyTestClass(int initValue){
            Value   = initValue;
              }
    }

    注意:左边这种重写equals()方式是简化的,在实际开发中不应该这样写,应该加上对参数有效性的检测代码

    equals()方法从哪来?

    当你定义一个类时,如果不显式指明它的“父亲”类是哪个,则默认是Object.

    Object是Java的最顶层基类,其中定义了equals()方法

    自定义 equals()方法

    除了重写基类的equals方法,也可以重载(overload) equals()方法:

    注意:

      与前面“重写”方式的代码相比,equals()方法的参数类型是 MyTestClass,而不是Object,并且方法本身也没有附加“@Override”标记

    类的构造方法

    当创建一个对象时,它的构造方法会被自动调用。构造方法与类名相同,没有返回值

    如果类没有定义构造函数,Java编译器在编译时会自动给它提供一个没有参数的“默认构造方法”

    如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造发法。

    多构造函数

    同一类可以有多个构造函数,多个构造函数之间通过参数来区别,这是方法重载的一个实例

    构造函数之间可以相互调用

    class Fruit{
        int grams;
        int calsPerGram;
        Fruit(){
                this(55,10);
            }
        Fruit(int g,int c){
            grams=g;
            calsPerGram=c;
           }
    }

    类的初始化块

    可以在类中使用“{”和“}”将语句包围起来,直接将其作为类的成员

    类的这种“没有名字"的”成员”,多用于初始化类的字段

    类字段的初始化顺序

    (1)执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”。

    (2)执行类的构造函数

    类的初始化块不接收任何的参数,而且只要一创建类的对象,它门就会被执行。因此,适合于封装那些“对象创建时必须执行的代码”

    访问类的静态字段

    class Employee
    {
    
        String name;
        long salary;
        short employee_id;
        static int total_employees;
        static void clear(){
            total_employees=0;
        }
    }

    类的静态方法只能访问类的静态成员

    包装类

    基本数据类型仅仅提供了数据,却缺少一些常用的功能,为此,Java提供了包装类

    包装类=基本数据类型的数据+扩充的一些方法和字段

    包装类是引用类型,可以创建相应的对象

    Java中的包装类:

    装箱和拆箱

     BoxAndUnbox.java

    public class BoxAndUnbox {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            int value=100;
    
            Integer obj=value;  //装箱
    
            int result=obj*2;     //拆箱
    
        }
    
    }
  • 相关阅读:
    【每天一道PAT】1001 A+B Format
    C++ STL总结
    开篇
    happen-before原则
    java多线程的状态转换以及基本操作
    集合初始容量
    fail-fast机制
    Stack
    Iterator
    Vector
  • 原文地址:https://www.cnblogs.com/ltw222/p/13797290.html
Copyright © 2011-2022 走看看