9.3.2:多态(掌握)
(1)某一类事物的多种存在形态。
**方法重载(静态多态)
**方法重写(动态多态,对象多态)
(2)对象多态的前提
A:类与类(或接口)要有继承(或实现)关系。
B:一定要有方法的重写。
C:一定要有父类或者接口的引用指向子类的对象。
(3)多态思想:可以指挥同一类型的一批对象做事情。多态的出现让我们复杂的问题简单化了。
A:Animal Cat Dog
**method(Animal a){a.eat();}
B:同学们吃饭
C:士兵打仗(抬枪,瞄准,射击)。
(4)多态中成员的特点:(我们只研究特殊的,就是说名字一样的东西)
Fu f = new Zi();
A:成员变量:编译和运行都看Fu。
B:非静态方法:编译看Fu,运行看Zi。
C:静态方法:编译和运行都看Fu。
举例: 动物的例子:
向上转型
Animal a = new Cat();
a.eat();
//a.catchMouse();
向下转型
Cat c = (Cat)a;
c.eat();
c.catchMouse();
//向上转型
Animal a = new Dog();
//向下转型 转换异常
//Cat c = (Cat)a;
Dog d = (Dog)a;
孔爹的例子:
孔爹:教课(Java)
孔子:教课(论语),看小说(),打游戏()。
孔爹 k = new 孔子();//穿上他爹衣服,就跟着去了
k.教课(论语)。
//k.看小说();
孔子 kz = (孔子)k;//把衣服脱了
kz.教课(论语);
kz.看小说();
kz.打游戏();
9.4.3:Object(掌握)
(1)Object类:java中所有类的父类。它是java类体系结构中的根类。
java中的类都直接或者间接继承自Object类。
(2)学习了里面的几个方法:重点掌握 toString(),equals()。
A:boolean equals(Object obj)
指示其他某个对象是否与此对象“相等”。
B:String toString()
返回该对象的字符串表示。
C:int hashCode()
返回该对象的哈希码值。
D:Class<?> getClass()
返回此 Object 的运行时类。
E:protected void finalize() 了解
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
**final,finally,finalize
(3)重点看下面两个方法
//重写toString()方法
public String toString()
{
//return "HelloWorld";
return "name:"+name+",age"+age;
}
//重写Object的equals方法
public boolean equals(Object obj)//s2--obj
{
//为了提高效率
if(this == obj)
{
return true;
}
//为了程序的健壮性
if(!(obj instanceof Student))//格式:对象 instanceof 具体的类名
{
return false;
}
Student s = (Student)obj;
if(this.age==s.age)
{
return true;
}
else
{
return false;
}
}
10.第10天
Equals ['i:kwəls]判断两个字符串是否相等
Memory ['meməri] 记忆,内存,存储器
OutOfMemoryError 在内存之外的错误:内存溢出(专业说法)
Heap [hi:p] 堆
Space [speis] 空间
Java heap space Java堆内存
Throw [θrəu] 抛出,投掷
Throws [θrəuz] throw的复数形式
Finally ['fainəli] 最后,最终
Message ['mesidʒ] 消息,信息,通知
Try [trai] 尝试,试图
Catch [kætʃ] 捕获,捕捉,抓住
Close [kləuz] 关闭,结束
Open ['əupən] 打开,公开
Add [æd] 添加,增加
Prelect [pri'lekt ] 讲课,讲演
eclipse中用到的单词
Refresh [ri'freʃ] 更新,刷新
Edit ['edit] 编辑
Project [prədʒekt] 项目,工程,计划
必会知识点:
10.1.1,内部类
1,格式(理解)
2,访问方式(掌握)
3,匿名内部类(必须掌握,就业班后面常用)
10.2.2,异常
1,异常的体系(理解)
2,异常处理方式(理解)
3,自定义异常(掌握,后面就业班会用到)
10.3.演讲内容:
1,构造器Constructor是否可被override? (演讲内容,面试题)
2,接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?(演讲内容,面试
题)
11.第11天
Directory [ di'rektəri ] 目录
Throwable [ 'θrəuə'ei bl ] 直译是可抛出的,在Java中指异常类.
ClassCastException ("类型错误"),类型转换异常
Runtime [run'taim] 运行时间
RuntimeException 运行时异常
Current ['kʌrənt] 当前的,现在的
Arithmetic [ə'riθmətik ] 算数
eclipse中用到的单词
Preference ['prefə rəns] 个人喜好/在汉化版中是"属性"
rename [,ri:'neim] 改名,重新命名 (F2快捷键)
template ['templit] 模板
必会知识点:
11.1.1:包(掌握)
(1)包:package
A:对类文件进行分类管理
B:给类提供多层命名空间
C:放在程序代码的第一行(注释除外)
(2)访问:先得有包,然后:包.类名
如何解决手动创建包的问题呢?
javac -d xxx PackageDemo.java
-d 后面跟的是:目录
当前目录:.
(3)不同包之间类的访问
类一定要用全路径名称:包名.类名
2:protected
包之间的继承关系。
11.2.3:import(掌握)
简化类名。
一个程序文件中只有一个package,可以有多个import。
用来导包中的类,不导入包中的包。
通常写import mypack.Demo;
而不写import mypack.*;为什么?
11.3.4:权限修饰符(掌握)
同一个类中 同一个包中 不同包中子类中 不同包中,不存在继承关系
private OK
默认 OK Ok
protected Ok Ok Ok
public OK Ok OK OK
11.4.5:关键字用来修饰什么?(掌握)
类 属性 方法 构造方法
private OK OK OK
默认 OK Ok Ok OK
protected Ok Ok OK
public Ok Ok Ok OK
static Ok Ok
final Ok Ok Ok
abstract Ok Ok
特殊:private和static可以修饰内部类。不用掌握。
static可以代码块。静态代码块。掌握。
A:权限修饰符任意时刻只能使用一种。
B:static,private,final不能和abstract并用。
11.5.6:jar(掌握)
(1)打包:
jar -cf haha.jar packa
(2)查看jar包
jar -xvf haha.jar
(3)如果内容特别多,好几个屏幕都放不下,
假使我们能够通过某个命令,讲这些目录写入到一个记事本中。看起来就方便了。
jar -tf haha.jar > c:\a.txt
11.6.演讲内容
1, 是否可以从一个static方法内部发出对非static方法的调用?(面试题)
答案:不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直
接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非static方法是关联到哪
个对象上的呢?这个逻辑无法成立,所以,一个static方法内部发出对非static方法的调用是不成立的。
|
|