• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

wchenfeng

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

Object类,java中的一个特殊类

Object类

该类是java.lang类库中的一个类,所有的类都是直接或者间接地继承该类而得到的。

Object类常用的方法

 1.equals()方法

用来比较二个对象是否相等。

详情切换☞

https://blog.csdn.net/m0_58138734/article/details/120336467https://blog.csdn.net/m0_58138734/article/details/120336467https://blog.csdn.net/m0_58138734/article/details/120336467

2.toString()方法

toString()方法功能是将调用该方法的对象的内容转换成字符串,并返回其内容,但返回的是一些没有意义且看不懂的字符串。

如果要使用toString()方法返回对象的内容,可以重新定义该方法,用以覆盖父类中的同名方法以满足需要。 

System.out.print(xxx),括号里面的“xxx”如果不是String类型的话,就自动调用xxx的toString()方法

public class app8_8 {
    public static void main(String[] args)
    {

        Abc obj=new Abc();
        System.out.println(obj);
    }
}
class Abc{
    public String toString(){
        return "输出abc";
    }
}

3.getClass()方法

返回运行时的对象所属的类。

getClass()方法返回的类型时Class类型

class Person{
    protected String name;
    public Person(String xm)
    {
        name=xm;
    }
}
public class app8_8 {
    public static void main(String[] args)
    {
        Person per=new Person("张三");
        Class obj=per.getClass();
        System.out.println("对象per所属的类为:"+obj);
        System.out.println("对象per是否是接口:"+obj.isInterface());
    }
}

 Class对象代表了java应用程序运行时所加载的类或者接口的实例,Class对象由JVM自动产生,每当一个类被加载时,JVM就自动为其生成一个Class对象。

由于Class类没有构造方法,所以可以通过Object类的getClass()方法来取得对象的Class对象,所以getClass()方法的功能是返回运行时的对象所属的类。

obj.isInterface()调用 isInterface()方法询问per是否为接口,运行结果为false,即不是接口。

4.对象运算符 instanceof

  

来测试一个指定对象是否时指定类或它的子类的实例,若是,则返回true,否则返回false。

5.getName()

返回一个类的名称,返回值是String类型。

6.getSuperclass()

获得父类。

运算符instanceof及getName()、getSuperclass()方法的使用

public class app8_8 {//定义app8_8类
    static int count = 0;//定义静态变量count
    protected String name;
    protected int age;

    public app8_8(String n1, int a1)//构造方法
    {
        name = n1;
        age = a1;
        this.count++;//调用父类的静态变量
    }

    public String toString() {
        return this.name + "," + this.age;
    }

    public void display() {
        System.out.print("本类名=" + this.getClass().getName() + ";");
        System.out.println("父类名=" + this.getClass().getSuperclass().getName());
        System.out.print("Person.count=" + this.count + " ");
        System.out.print("Student.count=" + Student.count + " ");
        Object obj = this;
        if (obj instanceof Student)//判断对象属于哪个类
            System.out.println(obj.toString() + "是Student类对象。");
        else if (obj instanceof app8_8)
            System.out.println(obj.toString() + "是Person类对象.");
    }

}
class Student extends app8_8//子类Student继承自父类app8_8,且是主类但不是public类
{
    static int count=0;//隐藏了父类的count
    protected  String dept;
    protected Student(String n1,int a1,String d1)
    {
        super(n1,a1);//调用父类的构造方法
        dept=d1;
        this.count++;//调用子类的静态变量
    }
    public String toString()//覆盖父类的同名方法
    {
        return super.toString()+","+dept;//调用父类的同名方法
    }
    public void display()
    {
        super.display();;//调用父类的方法
        System.out.print("super.count="+super.count);//引用父类的变量
        System.out.println(" ;this.count="+this.count);
    }
    public static void main(String[] args)
    {
        app8_8 per=new app8_8("王小桃",23);
        per.display();
        Student stu=new Student("张小三",22,"计算机系");
        stu.display();
    }
}

 

父类对象per调用自己的display()方法输出的结果 

子类对象stu调用自己的display()方法输出的结果 

posted on 2022-04-12 20:02  王陈锋  阅读(27)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3