基础回顾
- Java的三大特性:
封装 继承 多态 - Java的核心思想:
面向对象——万事万物皆对象 - Java的类:
具备相同特征的对象的模板
例如:
Person类:
不同事务也具备相同的特征
同一事务具备相同的特征
结论:
按照事务的特征来进行抽取成具体的Java类,由Java类来进行具体对象的创建
Java中的类的特征:
属性:修饰符 类型 属性名 值
结论:可以创建类专门用来表示以上特征,该类的一个对象表示一个具体的属性。
方法:修饰符 返回值类型 方法名 形参 方法体
结论:可以创建类专门用来表示以上特征,该类的一个对象表示一个具体的方法。
构造器:修饰符 形参 方法体
结论:可以创建类专门用来表示以上特征,该类的一个对象表示一个具体的构造器方法。
抽取一个类表示类的共同特征, 一个该类的具体对象存储了一个类的所有的信息
反射的概念和作用
- 反射的概念:
万事万物皆对象,类也是对象。 - 引用:通过反射创建类对象和使用对象。
- 反射的作用:创建对象
- 问题:传统方式创建对象:new 类名();前提是必须知道要使用的类,假如无法确定要执行的对象怎么办?(如果要修改使用的类必须修改源码)
解决:使用反射 - 反射获取类对象的三种方式:
Class.forName();//根据全限定路径获取
Class clazz1=Class.forName("com.pojo.Person");
对象名.getClass();//根据对象获取
Class clazz2=new Person().getClass();
类名.class//根据类名获取
Class clazz3=Person.class;
常用的方法:
System.out.println("获取类对象的包名——"+clazz1.getPackage());
System.out.println("获取类对象的修饰符——"+clazz1.getModifiers());
System.out.println("获取类的名称(全限定)——"+clazz1.getName());
System.out.println("获取类的名称(类名)——"+clazz1.getSimpleName());
System.out.println("获取类的父类的类对象——"+clazz1.getSuperclass());
注意:通过反射创建的类对象只有一个。