类和对象

2019-03-06  本文已影响0人  Mtllll

1.对象的打印操作
打印对象的时候,打印出来的效果,sevant@3294e4f4.(类的名称 @ 十六进制的hashcode).
其实,我们打印对象往往关心的是对象里的数据,object的toString方法.
2.对象的比较操作
==号对于基本数据类型来说,比较的是值,对于引用数据类型来说,比较的是内存中的地址.
每次使用new关键字,都表示在堆中开辟一块内存空间,不同的内存空间地址值不同.
需求:如果对象拥有相同的数据,我就想让他们相等,object的equals方法.
3.对象的生命周期
对象什么时候出生:每次使用new关键字的时候,就会在内存开辟新空间,此时对象就存在.
对象的结束:当堆中的对象没有任何变量引用,此时对象就成了垃圾,就等着垃圾回收器(gc)来回收该垃圾。回收垃圾的目的是为了释放更多的内存空间。
4.匿名对象
创建对象之后没有赋值给变量.
new Servant();因为没有名称,该对象只能使用一次。
例如:new servant().name="a"
new servant().name="b"
当new一次就创建一个对象,所以这是两个对象.
一般的,把匿名对象作为方法的实参传递.
学生缴费案例

public class studentFee {

    String name;
    boolean isFee;
    void fees() {
        isFee = true;
    }
    public static void main(String[] args) {
        studentFee s1=new studentFee();
        s1.name="lily";
        s1.isFee=true;
        studentFee s2=new studentFee();
        s2.isFee=false;
        s2.name="wang";
        studentFee s3=new studentFee();
        s3.name="ming";
        s3.isFee=false;
        studentFee s4=new studentFee();
        s4.name="kai";
        s4.isFee=true;
        studentFee arr[]=new studentFee[]{s1,s2,s3,s4};
        for(int k=0;k<arr.length;k++)
        {
            if(!arr[k].isFee){
                arr[k].fees();
            }
            
        }
    }

上一篇 下一篇

猜你喜欢

热点阅读