Object和Class

Posted AntarcticPenguin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Object和Class相关的知识,希望对你有一定的参考价值。

Object和Class

Object类是所有类的祖先类,定义所有的的类应该具有的基本方法
Class对象表示类的定义信息,通过这个对象可以得到类名、属性、构造方法和其他方法的定义信息
Object
类Object是类层结构的根类。如果把一个类在定义的时候没有声明父类,系统会把Object类作为父类,所以Object是所有类的祖先类。所有对象(包括数组)都实现这个类的方法。
主要方法:
      protected Object clone(),创建并返回此对象的一个副本
      boolean equals(Object obj),用于判断当前对象和参数指定的对象是否相同,通常比较内容。
 
Class
Class表示类的定义信息,可以通过对象来获取Class对象。得到Class对象的方式:
             Class studentInfo=Student.class;
             或者
             Student student=new Student();
             Class studentInfo=student.getClass();
得到Class对象后,可通过Class对象获取关于类定义的各种信息
             ——getName(),得到类名,包含包的名字;
             ——getSimpleName(),仅得到类名;
             ——getPackage(),得到这个类所在的包;
             ——getModifiers(),得到类的修饰符;
             ——getFields(),得到所有属性;
             ——getMethods(),得到所有方法
Class的其他方法,查阅帮助文档
例子:4.19
显示Student类定义的信息,包括类名、包名、访问控制符、属性列表和方法列表。
package example4_19;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

public class Student {
    private String sid;
    public String sname;

    public String getSid() {
        return sid;
    }

    public void setSid(String sid) {
        this.sid = sid;
    }

    public static void main(String[] args) {
        Student student = new Student();
        Class c = student.getClass();
        // Class c2 = Student.class;
        System.out.println("类名:" + c.getName());
        System.out.println("包名:" + c.getPackage().getName());
        int modifier = c.getModifiers();
        if (Modifier.isPublic(modifier)) {
            System.out.println("类的访问控制符是public");
        } else {
            System.out.println("类的访问控制符是缺省的");
        }
        System.out.println("属性列表:");
        Field fields[] = c.getFields();

        for (int i = 0; i < fields.length; i++) {
            System.out.println(fields[i].getName());
        }
        System.out.println("方法列表:");
        Method methods[] = c.getMethods();
        for (int i = 0; i < methods.length; i++) {
            System.out.println(methods[i].getName());
        }
    }
}
运行结果:

以上是关于Object和Class的主要内容,如果未能解决你的问题,请参考以下文章

Python类OOPs概念[重复]

Vue报错:Uncaught TypeError: Cannot assign to read only property 'exports' of object 的解决方法(代码片段

使用 Object.assign 和 class/extends 有啥区别?

type和object

Object.create(Class.prototype) 在这段代码中做了啥?

python使用上下文对代码片段进行计时,非装饰器