Object和Class
Posted AntarcticPenguin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Object和Class相关的知识,希望对你有一定的参考价值。
Object和Class
Object类是所有类的祖先类,定义所有的的类应该具有的基本方法
Class对象表示类的定义信息,通过这个对象可以得到类名、属性、构造方法和其他方法的定义信息
Object
类Object是类层结构的根类。如果把一个类在定义的时候没有声明父类,系统会把Object类作为父类,所以Object是所有类的祖先类。所有对象(包括数组)都实现这个类的方法。
主要方法:
protected Object clone(),创建并返回此对象的一个副本
boolean equals(Object obj),用于判断当前对象和参数指定的对象是否相同,通常比较内容。
——getPackage(),得到这个类所在的包;
——getModifiers(),得到类的修饰符;
——getFields(),得到所有属性;
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的主要内容,如果未能解决你的问题,请参考以下文章
Vue报错:Uncaught TypeError: Cannot assign to read only property 'exports' of object 的解决方法(代码片段
使用 Object.assign 和 class/extends 有啥区别?