面向对象(下)
一、快捷键总结
1.补全代码的声明:alt +/
2.快速修复:ctrl +1
3.批量导包:ctrl + shift +o
4.使用单行注释:ctrl +/
5.使用多行注释:ctrl +shift +/
6.取消多行注释:ctrl +shift + \
7.复制指定行的代码:ctrl + alt + down或 ctrl.+alt+ up
8.删除指定行的代码:ctrl + d
9.上下移动代码:alt + up或alt + down
10.切换到下一行代码空位: shift + enter
11.切换到上一行代码空位:ctrl + shift + enter
12.如何查看源码:ctrl +选中指定的结构或ctrl + shift + t
13.退回到前一个编辑的页面:alt +left
14.进入到下一个编辑的页面(针对于上面那条来说的):alt + right
15.光标选中指定的类,查看继承树结构:ctrl + t
16.复制代码:ctrl+c
17.撤销:ctrl + z
18.反撤销:otr.l+y
19.剪切:ctrl +×
20.粘贴:ctrl + V
21.保存:ctrl +s
22.全选:ctrl + a
23.格式化代码:ctrl +shift +f
24.选中数行,整体往后移动: tab
25.选中数行,整体往前移动:shift + tab
26.在当前类中,显示类结构,并支持搜索指定的方法、属性等:ctnl + o
27.批量修改指定的变量名、方法名、类名等:alt +shift + r
28.选中的结构的大小写的切换:变成大写:ctrl + shift +X
29.选中的结构的大小写的切换:变成小写:ctrl + shift + y
30.调出生成getter/ setter/构造器等结构:alt + shift + s
31.显示当前选择资源(工程or文件)的属性:alt +enter
32.快速查找:参照选中的Word快速定位到下一个:ctrl + k
33.关闭当前窗口:ctrl + w
34.关闭所有的窗口:ctrl + shift + w
35.查看指定的结构使用过的地方:ctrl. + alt+g
36.查找与替换:ctrl + f
37.最大化当前的View: ctrl +m38.直接定位到当前行的首位:home39.直接定位到当前行的末位:end
二、单例设计模式
设计模式:实在大量的实践中总结和理论化之后有限的代码结构、编程风格、以及解决问题的思考方法。
单例设计模式:采取一定的方法保证在整个的软件体系中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。
1.饿汉式
单例模式——饿汉式
步骤:
- 私有化构造器
- 内部创建类的对象
- 提供公共的静态方法,返回类的对象
- 要求此对象必须也声明为静态的
package text7;
//单例模式——饿汉式
public class Singleton {
public static void main(String[] args) {
Bank bank1=Bank.getInstance();
Bank bank2=Bank.getInstance();
System.out.println(bank1==bank2);//true
}
}
class Bank{
//1.私有化构造器
private Bank(){
}
//2.内部创建类的对象
//4.要求此对象也必须声明为静态的
private static Bank instance =new Bank();
//3.提供公共的静态方法,返回类的对象
public static Bank getInstance(){
return instance;
}
}
2.懒汉式
单例模式——懒汉式
步骤:
- 私有化构造器
- 声明 当前类对象,没有初始化
- 声明public、static的返回当前类对象的方法
package text7;
//单例模式——懒汉式
public class Singleton2 {
public static void main(String[] args) {
Order order1=Order.getInstance();
Order order2=Order.getInstance();
System.out.println(order1==order2);
}
}
class Order{
//1.私有化构造器
private Order(){
}
//2.声明 当前类对象,没有初始化
private static Order instance=null;
//3.声明public、static的返回当前类对象的方法
public static Order getInstance(){
if(instance==null){
instance=new Order();
}
return instance;
}
}
3.区分饿汉式和懒汉式
- 饿汉式:
- 坏处:对象加载时间过长。
- 好处:饿汉式是线程安全的
- 懒汉式:
- 好处:延迟对象的创建。
- 目前的写法坏处:线程不安全。—>到多线程内容时,再修改
4.应用
- 网站的计数器
- 应用程序的日志应用
- 数据库连接池
- Application应用
5.main()方法的补充
- main()方法作为程序的入口
- main()方法也是一个普通的静态方法
- main()方法可以作为我们与控制台交互的方式。(之前:使用Scanner)
三、接口
- 接口使用interface来定义
- Java中,接口和类是并列的两个结构
- 如何定义接口: 定义接口中的成员
- 全局常量: public static final的.但是书写时,可以省略不写
- 抽象方法: public abstract的
除了定义全局常量和抽象方法之外,还可以定义静态方法、默认方法注意:
- 接口中定义的静态方法,只能通过接口来定义。
- 通过实现类的对象,可以调用接口中的默认方法。(默认方法可被重写)
- 如果子类继承的父类和接口定义了同名同参数的默认方法且子类没有被 重写,则该类调用的是父类的同名同参数方法。(父类优先)
- 如果实现类实现了多个接口,而这多个接口中定义了同名同参数的默认方法,那么在实现类没有重写此方法的情况下,报错。–>接口冲突。(需要重写)
- 接口中不能定义构造器的! 接口不可以实例化
- Java开发中接口通过让类去实现(implements)的方式来使用.
如果实现类覆盖了接口中的所有抽象方法,则此实现类就可以实例化如果实现类没有覆盖接口中所有的抽象方法,则此实现类仍为一个抽象类- Java类可以实现多个接口—>弥补了Java单继承性的局限性
格式:class AA extends BB implements CC, DD,EE- 接口与接口之间可以继承,而且可以多继承
- 接口的应用——代理模式Proxy
四、Javabean
JavaBean 是一种Java语言写成的可重用组件。
所谓javaBean,是指符合如下标准的Java类:
- 类是公共的
- 直一个无参的公共的构造器
- 有属性,且有对应的get. set方法
package text;
public class person {
// JavaBean是一种Java语言写成的可重用组件。
// 所谓javaBean,是指符合如下标准的Java类:
// >类是公共的
// >直一个无参的公共的构造器
// >有属性,且有对应的get. set方法
private int age;
String name;
//添加无参构造器
public person(){
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
五、 UML 类图
六、MVC设计模式
七、 Debug的使用
调试过程:
设置断点
debug as application
常用操作
操作 作用 step into跳入(f5) 进入当前行所调用的方法中 step over跳过(f6) 执行完当前行的语句,进入下一行 step return(f7) 执行完当前所在的方法,进入下一行 drop to frame 回到当前行所在方法的第一行 resume恢复 执行完当前行所在断点的所有代码,进入下一个断点,如果没有就结束