(一)学习的内容
1.Java程序的结构
2.构造函数
3.类的继承
4.对象数组
5.正则表达式的使用
6.多态
7.程序异常处理
8.instanceof运算符
(二)学会的内容
1.Java程序的结构
主要有三个板块组成:主函数、工具类、模型。
主函数是整个程序最主要的地方,包含各个方法、工具类的调用,主函数需要尽量简洁,不要写得过于冗余,仅仅调用各种方法最好。
工具类顾名思义就是存放我们要使用的工具的,就像一个装满装备的仓库,需要使用的时候就用主函数来调用。还可以添加一些属于自己的方法,就像是自定义的一些新装备一样,放进去后现在可以用,以后也能用,更加方便。
模型就是存放数据的一个模板,比如创建一个狗的模型,狗的年龄、体重、品种等等都可以放在里面,想放多少内容都可以放进去。总而言之模板就是装各种数据的地方。
2.构造函数
构造函数就是在整个类里面最先执行的函数,当你在主函数里面new的时候就已经执行。函数名和类名要相同,可以定义无数个构造函数,拿来传参数。也可以重载出许多不同的构造函数,当主函数传入的参数不同使使用不同的方法。例如:
public class Tests{
public Tests(){
………函数内容………}
public Tests(String a){函数内容}
public Tests(String a, int b){函数内容}
等等
}
3.类的继承
分为子类和父类,子类继承于父类,可以使用父类中的方法或者成员变量。用柯总的话来说点一下就都出来了。例如:
public class son extends FA //子类继承父类
重写:方法返回类型一样、方法名称一样,参数一样,这就是子类与父类的方法构成了重写。调用时就使用子类的方法。这个时候就要用super关键字来调用父类中的方法或成员变量。例如:
super.成员变量名;
super.函数();
4.对象数组
当我们需要装同一个模型,但是有不同数据时就要用到对象数组。和普通数组几乎一样,但是为了数据安全在模型里面都添加了private,所以是使用set和get来添加读取数据的。例如:
public class Dogs {
private String kinds;
private int mname;
public String getMname() {
return mname;
}
public void setMname(String mname) {
this.mname = mname;
}
public String getKinds() {
return kinds;
}
public void setKinds(String kinds) {
this.kinds = kinds;
}}
我们已经创建了一个狗的模型,模型里面有名字和种类需要我们添加,在需要添加多个狗的信息时:
Dogs[] dog=new Dogs[添加的个数];
使用一个for循环,设置添加的个数,再在数组中一个个添加信息。例如:
for(int i=0;i<添加的个数;i++){
dog[添加的个数].setKinds(sc.next());
dog[添加的个数].setMname(sc.next());
}
读取时同样添加for循环,用get读取即可,就不举例了。
5.正则表达式的使用
我常常在做各种登陆系统,或者各种特定信息时,需要限制用户输入数据的类型,以及各种符号。就有了正则表达式,不再需要我们自己去想去设计相关程序,在网上找到直接就可以使用。例如:
Parttern parttern=Parrttern.compile(“[0-9]*”);
引号中间的字符就是我们的表达式,例子中所限制的就是只能输入0-9这几个数字。
定义规则:
Matcher isnum1=parttern.matcher(num1);
is.num1matches();
这里返回是一个布尔值,也就是真或者假,加上一个if函数就很好解决限制用户输入的问题。
6.多态
在同一继承树上的不同对象针对同一行为的不同表现称之为多态。多态只是方法的多态,属性没有多态。两个类之间要有继承关系,方法要重写,父类引用指向之类对象。例如:
Father fa=new Son(); //隐式对象
也称为向上转型。
Son son=(Son)fa;
这是向下转型,需要强转。
7.程序异常处理
在我们运行程序时有时候会弹出一长串让人不爽的红色异常代码,常有的就是空指针异常和数据写入异常(用int 接收了String)就会让我们或者用户十分不爽。这时候就要用try/catch解决:
try{你要扫描检查的内容
}catch(Exceptione){异常后输出的内容
}
一下子就让我们摆脱那烦人的一片红,且可以在用户错误输入后进行相应提示。
还有一个finally块,它可以确保出现异常后所有清除工作都能被处理。常常用于关闭/释放资源。
8.instanceof运算符
用来对比对象是否属于那个类。例如:
If(bill instanceof Pon)//bill对象是不是属于Pon这个类。
(三)存在的问题
1.对于在主函数中调用工具类里的函数,或者模型里面的内容操作不熟练。有的时候会忘记new一个要用的方法或者模型,有的时候又会多new一些不必要的东西。new多了有的时候就会在写代码功能时用错函数或者数据,还是要多多练习,避免这类错误。
2.很多内容没有及时去复习,因为忙于班级文化建设,很多时间就仅仅是上课听了,然后做个作业就结束了。没有第一周有那么多时间去学其他知识或者复习以前学习的内容。
3.自己能力不足,部分功能实现不了。比如说作业里面有个设计排行榜的功能。我的初步想法就是按照加入库存的数量进行排序,毕竟热门的才会有更多的进货。但是我又在修改里面增加了改库存的一个方法。最后想到是用搜索次数来判断影片热度,现在主流都是按照搜索次数来做,但是还是没有实现。