Java学习--(七)类

类的组成:field & method属性和方法
类的写法基本和C++中无异

同C++,为了安全性,最好把所有的属性都设为private,使用方法来获取值或修改值,如果使用eclipse可以直接生成set和get方法,source-》Generate Getters and Setters,选择想要的属性即可

继承:java中一个子类只能有一个父类。
继承关键字extends: 比如父类Animal,子类Dog,都有属性int age

public class Dog extends Animal{
      /*....*/
}

super关键字: 使用父类的内容。比如要使用父类的年龄则是super.age;
子类在执行构造参数的时候会先执行父类的构造方法,这条语句是隐藏的,即super();默认使用无参的构造参数,如果父类没有无参的构造方法,则必须显示使用super,比如Animal(int a) ,则在Dog()中是类似

public Dog(){
    super(1);
}

这样的。

object类是java所有类的父类,如果没有用extends明确指出父类,则父类是object类
在Java中,如果我们输出一个类的名字(非字符串),得到他的地址值

System.out.println(dog);

如果我要得到dog的属性,那么我就要重写object类中的toString方法,在object类中toString()方法是返回对象的哈希Code值(对象地址字符串)。重写方法

public String toString(){
    return "Dog [age=" + age + "]"//Dog类只有age一个属性
}

也可以使用eclipse,source-》Generate toString() 选择要生成的属性

object类中还有equals()方法,原来的equals()方法是判断两个对象的地址值是否相等,一般情况是不相等的。比如Dog dog=new Dog(); Dog dog1=new Dog();
这是分配了两个内存空间,地址自然不同 ,若我们要用来判断属性是否相等,则又要重载,eclipse重载如下

public boolean equals(Object obj){
        if(this==obj)
            return true;
        if(obj==null)
            return false;
        if(this.getClass()!=obj.getClass())
            return false;
        Dog other = (Dog)obj;
        if(this.age==other.age)
            return true;
        else return false;
    }

这里的getClass是获得类对象的意思,与类的对象不同,类对象是代码信息,比如 该类有什么属性,变量名,方法,方法的代码。而类的对象关注的是数据信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值