java Object类中的方法解析

@学习过Java Object类中的方法后收获

因为java中所有的类都是由Object类派生而来的,因此Object类中的方法,在其它类中都可以使用,常用的方法,如下表:

方法用途
Object clone( )创建与该对象的类相同的新对象
boolean equals(Object)比较两个对象是否相等
void finalize( )当垃圾回收器确定并不存在对该对象的更多引用时,对象的垃圾回收器调用该方法
Class getClass( )返回一个对象运行时的实例类
int hashCode( )返回该对象运行时的散列码值(哈希码值)
void notify( )激活等待在该对象的监视器上的一个线程
void notifyAll( )激活等待在该对象的监视器上的全部线程
String toString( )返回该对象的字符串表示
void wait( )在其他线程调用此对象的notify( )方法或者notifyAll( )前,导致当前线程等待

标题其中,equals( )方法和getClass()方法zaijava程序中比较常用.

equals() 方法

equals() 方法的作用与运算符类似,用于值与值的比较和值与对象的比较,而 equals() 方法用于对象与对象之间的比较,其使用格式如下:

boolean result=obj.equals(Object o);

其中,Obj 表示要进行比较的一个对象,o 表示另一个对象。

实例1:
//boolean equals(Object)  比较两个对象是否相等
   String str = "xueyun";
   String std = "xueyun";
   System.out.println(str.equals(std));

结果:ture;

实例2;

编写一个 Java 程序,实现用户登录的验证功能。要求,用户从键盘输入登录用户名和密码,当用户输入的用户名等于 admin 并且密码也等于 admin 时,则表示该用户为合法用户,提示登录成功,否则提示用户名或者密码错误信息。

在这里使用 equals() 方法将用户输入的字符串与保存 admin 的字符串对象进行比较,具体的代码如下:

import java.util.Scanner;
public class Test01
{
    //验证用户名和密码
    public static boolean validateLogin(String uname,String upwd)
    {
        boolean con=false;
        if(uname.equals("admin")&&upwd.equals("admin"))
        {    //比较两个 String 对象
            con=true;
        }
        else
        {
            con=false;
        }
        return con;
    }
    public static void main(String[] args)
    {
        Scanner input=new Scanner(System.in);
        System.out.println("------欢迎使用大数据管理平台------");
        System.out.println("用户名:");
        String username=input.next();    //获取用户输入的用户名
        System.out.printin("密码:");
        String pwd=input.next();    //获取用户输入的密码
        boolean con=validateLogin(username,pwd);
        if(con)
        {
            System.out.println("登录成功!");
        }
        else
        {
            System.out.println("用户名或密码有误!");
        }
    }
}

结果:

------欢迎使用大数据管理平台------
用户名:
adinm
密码:
admin
用户名或密码有误!

------欢迎使用大数据管理平台------
用户名:
admin
密码:
admin
登录成功!

getClass() 方法

getClass() 方法返回对象所属的类,是一个 Class 对象。通过 Class 对象可以获取该类的各种信息,包括类名、父类以及它所实现接口的名字等。

实例演示:
    //getClass()方法 返回对象所属得类,是一个Class对象.通过Class对可  
   //以获``取该类的各种信息,包括类名,父类以及它所实现接口的名字等.
    System.out.println(animal.getClass());
    //运行结果 : Class 学习Project.initAnimals  
    System.out.println(animal.getClass().getName()); 
    //运行结果 : 学习Project.initAnimals
    //返回该对象所属类的父类名
     System.out.println(animal.getClass().getSuperclass());
     // 运行结果 : class java.lang.Object 
    System.out.println(animal.getClass().getSuperclass().getName());
    // 运行结果 :  java.lang.Object 
   
    //返回该对象所属类所实现的接口,
    //通过animal.getClass().getInterfaces().length 得到所有接口数,
    //再通过animal.getClass().getInterfaces()[i].getName() 得到所有的接口 
    //注意在getInterfaces() 后面有一个  [ ]    
    for(int i=0;i<animal.getClass().getInterfaces().length;i++) {
    System.out.println(animal.getClass().getInterfaces()[i].getName());

toString( )方法

当打印的对象没有重写toString()时,toString()方法默认返回该对象实现类的"类名+hashCode(哈希码)"值 若要实现自我描述时需要对toString()函数进行重写.

System.out.println(animal);

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值