1.学习视频:1>考试系统第6课—题目的图片处理
2>公开课 拯救稀碎的基础—>反射
2.学习内容:**
1>监听器ActionListener 创建对象中,会获取一个参数ActiomEvent e,这个参数有一个方法 getSource(); 可以获取资源,就是获取你选择的选项,该参数类型为Object 通用,可以向下造型为JButton(按钮)。
2>在匿名内部类里面调用外部类,需要用对象. 点的方式
3>类的出现是为了描述对象的
Class是描述所有的类:(复习)
1)类有自己的结构 (名字 继承 实现)
2)类里面还有自己的成员(属性 方法 构造方法 包)
Field Method Construct Package
3)类模板可以理解为Class对象
编译后在文件中产生了.class字节码文件,java执行命令的时候,jvm虚拟机开辟空间映射类
补充:Object 是一个具体的类,所有的父类
class是关键字
4>类加载器(ClassLoader)
当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个class文件中要调用另外一个class文件中的方法,如果另外一个文件不存在的,则会引发系统异常。而程序在启动的时候,并不会一次性加载程序所要用的所有class文件,而是根据程序的需要,通过Java的类加载机制(ClassLoader)来动态加载某个class文件到内存当中的,从而只有class文件被载入到了内存之后,才能被其它class所引用。所以ClassLoader就是用来动态加载class文件到内存当中用的。
5>公开课知识点
类———-归类 抽象描述 概念
别人写好的String Integer Math
需要自己描述的——抽象的
对象——-从类中衍生出来的一个具体的个体
具体的——与所属的类有相同的属性或行为
======================================
反射 可能不知道类中描述了什么
通过一些技术看到类中的元素
先找到类中成员 反着找所属对象
正常 先描述类,其实我们知道里面有什么
创建对象,用这个对象去调用属性/方法
你知道对象里面有什么

6>单例模式:一个类只有一个实例化的对象,单例模式实现的核心是构造方法私有化,这样就不能在类的外部创建该类的实例化对象,要想在类的外部使用构造方法私有化的类对象,只能在类的内部实例化一个类对象,然后通过静态方法返回该实例对象的引用,在外部进行调用。构造方法被私有化,就无法在类外部实例化对象。
例如:创建一个构造方法私有化的person类
public class Person{private String name;private Person(String Name){ //私有的构造方法this.name = name;}}
由于私有化的方法和属性只能在本类中看到和访问,其他方法中是看不到的!
这样不能在外部实例化这个Person对象的类,要想在Person类的外部使用Person类的对象,只能在person类的内部实例化一个Person类的对象,并通过静态方法返回实例化对象的引用,而不能在外部实例化新的对象(不能用new创建一个新的实例化对象)
public class TestSigleModel {public static void main(String[] args) {Person s = Person.getInstance();//只能通过Person类中的getInstance方法获取到实例化对象s.print();}}class Person{private String name;private static Person newPerson = new Person("百度知道"); //Person类唯一的实例化对象private Person(){};private Person(String Name){ //私有的构造方法this.name = name;}static public Person getInstance(){ //将newperson返回给外部调用处!!!return newPerson;}public void print(){System.out.println("hello");}}
这样外部的Person类的所有对象只能是对Person内部newperson对象的引用。
外部一千一万个对象也都只能是对Person内部newperson对象的引用。
因为外部定义的Person类对象没有实例化能力。这就是单例设计模式,从头至尾只有一个对象的实例(单例)
- 补充:
在面向对象的编程中,通常把用类创建对象的过程称为实例化,其格式如下:
如 Date date=new Date();就是用日期类创建了一个日期的对象,就叫对象的实例化。
多数语言中,实例化一个对象就是为对象开辟内存空间,或者是不用声明,直接使用new 构造函数名,建立一个临时对象。
7>单例设计模式的类型:
(1)饿汉式:当类装载的时候就会创建类的实例,不管你用不用,先创建出来,然后每次调用的时候,就不需要再判断。
(2)懒汉式:每次获取实例都会进行判断,看是否需要创建实例,如果一直没有人使用的话,那就不会创建实例。
(3)生命周期托管:为了管理对象的产生,对象的控制权给当前类负责,生命周期托管实现对象的单例,IOC控制反转。
8>单例模式的特点?
(1)构造方法被私有化(private);
(2)只能够通过getInstance()方法获取实例化对象,这样不管外部如何操作,最终也只有一个实例化对象;
(3)在单例设计模式之中,一定会存在一个static方法,用于取得本类的实例化对象。
9>ORM相关知识点:https://www.yuque.com/docs/share/0f7cbc49-cab1-4227-8c1a-58b3f04c5a6d?# 《ORM总结》
总结:**
通过今天的公开课反射的讲解,让我对反射有了更进一步的认识,也系统的复习了一下,还做了一个ORM相关的知识点总结,收获还是很大的!
