搞懂Java的Class类
搞懂Java的大Class
class Student{
String name;
int age;
public void learn(){
System.out.println("正在学习");
}public int getAge(){
return age;
}public void hello(String message){
System.out.println(message);
}
}class Book{
private float price;
private String author;
}
所以,不管是上面的
Student
,Book
类,还是Java语言中的自带类比如String
类所有的类,都有下面的一些共性:
- 所有的类,都有一个类名:比如上面的
Student
,Book
,String
类,再加上包名,假如包名是 com.test , 那么这些类的名字就是com.test.Student
,com.test.Book
,com.test.String
- 所有的类,都有0个或者多个字段,比如上面的
name
,age
,price
,author
- 所有的类,都有0个或者多个方法,比如上面的
learn()
- 所有的类,都有修饰符,比如
public
,private
,protected
等 - 所有的类,都有0个或者多个静态方法
- 等等等
通过上面的分析我们知道,所有的类都有一些公共特性,那么我们就定义一个类,来描述这些公共特性,我们暂且把这个类起个类名,叫
Info
其实我们这里的Info类,就是java中的Class,java中的
Class
其实就是个普通的类而已,和其它的类没什么不一样的。不信看看Class
定义文章图片
Class就是一个普通的类,这个类描述的是所有的类的公共特性Class类能干什么?
既然上面我们知道了,所有的类都是有公共特性的,我们定义了一个叫
Class
的类来描述这些公共特性那么是不是所有的类的方法,所有的类的字段,是不是也有公共的特性?
答案
是的
是不是有点迷糊? 不要怕,很简单,举个例子就知道了。
还是上面的
Student
,Book
类,- 所有的类的字段,都有名字。
比如Book
类中的price
字段,它的名字是不是"price"
- 所有的类的字段,都有类型。
比如Book
类中的price
字段,它的类型是float
- 所有的类的字段,都有修饰符。
比如Book
类中的price
字段,它的修饰符是private
我们看一下JDK中关于Field的定义
文章图片
是不是和
Class
类一样,Field
类也是一个普通的类同理,类中所有的方法,是不是也有公共的特性?
答案:
是的
- 所有的类的方法,都有方法名
比如Student
类中的getAge()
方法,它的方法名是"getAge"
- 所有的类的方法,都有返回值类型
比如Student
类中的getAge()
方法,它的返回值是int
类型 - 所有的类的方法,都有参数。(无参数也是算是特殊的参数吧)
比如Student
类中的hello(String message)
方法,有一个参数,参数的类型是值是String
类型 - 所有类的方法,都有修饰符号。
比如Student
类中的getAge()
方法,它修饰符号是public
我们看下JDK中的定义
文章图片
由上面可以,那么
Class
类就是通过Field
和Method
来描述类中的字段和方法我们来看一下JDK中
Class
类中,关于Field和Method
的成员文章图片
这些数组就是保存类中的字段或者方法的。
Class如何使用?
我们先看一下JDK中
Class
类的构造函数文章图片
就这一个构造函数,还是私有的,所以,我们不能直接
new
一个对象了【搞懂Java的Class类】综上所述,我们知道了
- Class就是一个普通的类,就是用来描述一个类的信息的(比如类有几个字段,几个方法,名字叫什么等等 )
- 可以通过 3 种方法来获取Class的对象,也就是某个类的字节码
- 有个某个类的字节码以后,我们就知道知道这个类的许多信息了
- Class一般是在运行时使用,你只要告诉我类名,我就可以知道这个类中有多少方法,有多少字段,怎么调用等等
- Filed,Method(还有其它的,我们只说这2个),分别是描述类的字段和类的方法的
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量