关于张老师Java视频学习(四)

Java基础知识加强视频的学习:


一、知识点:
15、实现带有构造方法的枚举:
 (1)、枚举中,定义了枚举值之后,若再定义枚举的方法成员,则必须在枚举值之后。
 (2)、在枚举主体内的方法成员,其访问属性的声明,必须是private的,否则,报错。
 (3)、枚举就是一个类,枚举的成员就是这个枚举的实例。
16、实现带有抽象方法的枚举:
 (1)、内部类与外部类的访问修饰符比较: 内部类可以有4个修饰符,而外部类只能有2个,一个是默认的(无修饰),一个是public。
 (2)、枚举的常量值,是枚举的一个子类的实际对象,该子类是一个匿名类,代码是{},我们可以选中工程,然后利用工具栏中的Open in Explorer进入工程
  的目录,并打开bin文件夹,我们可以查看到,EnumTest的子类TrafficLamp的匿名子类 ,默认排序名为1、2、3。然后,我们可以该对象后面进行子类的定义?
 (3)、子类中必须有父类的抽象方法,当程序太过复杂,工具将不提供建议,即没有键入提示。
 (4)、若枚举只有一个成员,就可以作为一个种单例的实现方式。
 (5)、在一个子类的实例中,可以调用父类的构造方法,不管是默认的无参的还是有参的,当调用有参的构造函数时,需要在子类对象后面紧加有参的列表来调用。
  这是多态的一个表现。
 (6)、类中的方法返回的类型可以返回自己的类型,类中可以定义静态常量,常量指向的结果可以是类的实际对象。
17、透析反射的基础_Class来:  P224 & P457
 (1)、(大写)Class类,代表的是用于描述一类事物的共性,描述该类事物有什么属性,没有什么属性。这个属性是什么,则由这个类的实例对象类确定,不同的实例对象
  有不同的属性值。Java中的各个Java类,他们是否属于同一类事物,是否可以用一个类来描述这类事物?Class所做的,便是这个事。
 (2)、Class类描述了:类的名字,类的访问属性,类所属的包名,字段名称的列表,方法名称的列表等等…
 (3)、字节码:一个类被类加载器加载到内存中,占用一片存储空间,这个空间里面的内容就是类的字节码,不同的类的字节码是不同的,而同一个类的字节码
  则是相同的。这一个个空间分别用一个个对象来表示,那么这些对象就应该具有相同的类型,这个类型就是Class。
 (4)、Java字节码:是一种二进制的类文件,它的内容是 JVM 的指令,而不像 C、C++经由编译器直接生成机器码 ,正因为不是机器码,所以不能直接运行在操作
  系统平台上 ,Java把源文件编译成高效的字节码,通过java虚拟机可以快速的转换为各个机器所需要的机器码,所以只要有java虚拟机,java就能达到
  处处运行。这个字节码文件,其实就是.class文件。
 

二、问题与收获:
 (1)、在枚举中:当我们创建一个枚举类定义了值域,并定义了两个构造函数,一个无参,一个形参为(int day),枚举值默认调用的是无参构造函数。
  而当我们在枚举值后面加上(int值)时,调用的便是第二个形参为(int day)的构造函数。而只在枚举值后+ ()的,则还是调用默认的无参构造函数。
 (2)、枚举到底是个什么东西? P235
      枚举,是类的一种特殊形式,即,它本身就是一个类。当我们定义一个枚举类型的时候,类型中所描述的枚举常量值,都作为同一个类的实例生
  成的。这个相同的类是以定义在java.lang包中的Enum类作为超类。相应于每个枚举常量的对象,都在其成员域中存储着该枚举常量的名称。即,每
  个枚举常量,都是一个相同的类的对象,该对象的成员域中,存储着该枚举常量的名称,并且继承了Enum类的toString()方法,用于返回枚举常量的
  原始名称。 枚举常量,本身就是一个类的对象,那么,这个类是哪个呢 ? 会不会是我们所定义的Enum 的类呢? 应该是这样的:
      解析: 我们在程序中,使用WeekDay.FRI.getClass() ,并将之输出。得到的是class learn_day1.EnumTest$WeekDay ,即,对象WeekDay.FRI ,
      是包learn_day1中类EnumTest的子类WeekDay的一个实例。 就是说,枚举类中的常量,就是该枚举类的一个对象。真是奇怪,在类中定义生成该
      类的对象。这又是个什么东西?
 (3)、意外发现:在枚举体内使用键入提示触发符“.”时,平常在普通类中生效的一些提示,竟然没有了。如,Math. ,Eclipse将不给出任何提示,这是为何?
   解析:枚举是一个特殊的类,枚举主体中,受到了很多限制。 那么,这些具体的限制又是什么?
 (4)、所谓单例,是一种设计模式,即一个类的实例,只有一个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值