文章目录
- Eclipse工具中java项目的工程结构
- 静态代码块的书写格式
- 静态代码块,构造代码块,构造方法的优先级
- static关键字的特点
- 封装的概念
- private关键字的特点
- 面向对象思想特点
- Eclipse中一些常用的快捷键
- 继承的概念
- 继承的好处
- 继承的格式
- Java中的开发原则
- 继承的特点
- 继承中的注意事项
- 继承中变量名相同的访问问题
- 继承中子类构造方法访问父类构造方法的问题
- this和super的区别
- 代码块的优先级问题
- 有关方法重写和方法重载的区别
- 多态的概念
- 多态的前提条件:
- 多态的成员访问特点:
- 多态的好处:
- 多态的弊端:
- 多态的向下转型使用不当,程序出现异常:
- 有关final关键字的特点:
- final修饰基本类型的变量和引用类型的区别
- 冒泡排序思想
- 冒泡排序核心代码
- 选择排序思想
- 选择排序核心代码
- 抽象类的概念
- 抽象类中抽象方法格式
- 抽象类注意事项
- 抽象类的本质
- 抽象类的特点:
- abstract关键字不能和哪些关键字共存
- 接口的概念
- 接口的基本注意事项:
- 接口的特点:
- 抽象类和接口的区别:
- 包的编译和运行
- 方法的形式参数问题:(引用类型)
- 内部类的概念
- 内部类注意事项
- 内部类的分类:
- 成员内部类的访问方法
- 成员内部类中的修饰符:
- 权限修饰符
- 方法返回值问题(引用类型)
- 成员内部类中的修饰符:
- 权限修饰符
- 方法返回值问题(引用类型)
Eclipse工具中java项目的工程结构
静态代码块的书写格式
static{
//代码块内容
}
静态代码块,构造代码块,构造方法的优先级
静态代码块>构造代码块>构造方法
***注意: 静态代码块只执行一次
static关键字的特点
1)被static修饰的,随着类的加载而加载
2)优先于对象存在
3)可以多个对象共享,共用
4)访问方式: 类名直接访问
**被static修饰的变量推荐访问方式: 类名.变量名
**被static修饰的方法推荐访问方式: 类名.方法名
封装的概念
将类的属性或者方法私有化,保证数据的安全性,对外提供公共的访问方法
private关键字的特点
private可以修饰变量,也可以修饰方法,只能在本类中访问
但是可以间接的通过公共的方法来访问
面向对象思想特点
1)更符合生活中思想行为习惯
2)将复杂的问题简单化
3)从执行者变为指挥者
Eclipse中一些常用的快捷键
alt+/:eclipse中神键 :通过缩写或者特定的单词可以提示代码
alt+sift+s–>c :创建无参构造方法
alt+shift+s–>o :创建有参构造方法
alt+shift+s–>r :提供公共的访问方法:setXXX(Xx xx)/getXXX
ctlr+d:删除某一行代码
ctrl+shift+o: 导包的快捷键
在创建对象的时候,new 类名() ; 使用ctrl+1/ctlr+2+l(字母),自动补全代码
继承的概念
将一些类的共性抽取出来,定义到一个独立的类中,让这个独立的类和这些类产生一种关系(extends 继承关系)
继承的好处
1)提高代码的复用性
2)提高代码的维护性
3)类与类产生的继承关系是多态的前提条件
继承的格式
class 父类名{}
class 子类名 extends 父类名{}
Java中的开发原则
低耦合,高内聚
耦合:类与类之间的关系,关系越少越好(在开发中:降低程序间的耦合性---->Spring框架:IOC思想:控制反转)
内聚:完成某个事情的能力,在一个类中能完成的,尽量在一个类中完成(执行力)
继承的特点
1)java中类与类的继承,只支持单继承,不支持多继承
2)支持多层继承
继承中的注意事项
1)子类继承父类,不能继承父类的私有成员(成员变量和成员方法)
因为被private修饰的外界访问不到,只能在本类中访问,但是可以通过公共的访问方法进行访问
2)子类继承父类,不能继承父类的构造方法,但是可以通过super关键字访问父类的构造方法
继承中变量名相同的访问问题
遵循"就近原则",从方法中最近的局部变量找起,如果没有从子类成员变量找,如果没有再从父类成员变量中寻找
继承中子类构造方法访问父类构造方法的问题
子类中的构造方法默认访问父类的无参构造方法,由于存在继承关系,创建子类对象,初始化子类的时候,可能用到父类的数据,因此需要先对父类初始化(执行父类构造方法),父类初始化完毕后,才是子类初始化,也就是分层初始化
**注意: 子类中的构造方法第一句话默认存在super();
super代表父类空间标识
注意事项:
-
子类的构造方法默认访问父类的无参,
-
那么如果父类中没有提供无参构造方法?会怎么办
-
会编译报错,因为父类有存在有参构造方法,系统不会提供无参的,又由于子类的所有构造
-
方法默认访问父类的无参,所以报错了!
-
如何解决呢?
-
1)手动给出父类的无参构造方法
-
2)可以让子类的所有构造方法,默认访问父类的有参
-
在子类的构造方法的第一句话:super(xxx)
-
子类中所有构造方法的一个只要能够让父类初始化即可!
-
3)通过子类的有参构造方法,访问this()本类的无参构造方法,在通过本类的无参构造方法
-
访问父类的有参构造(让父类先进行初始化)
this和super的区别
-
this:代表当前类的对象地址值引用
-
super:代表父类的空间标识(父类对象的地址值引用)
-
访问的区别
-
this.成员变量;访问的当前类的成员变量
-
super.成员变量;访问的父类的成员变量
-
this.成员方法名() ;访问的是否当前类的成员方法
-
super.成员方法名() ;访问的是父类的成员方法
-
this() :访问的是本类无参构造方法
-
this(xxx):访问的本类的有参构造方法
-
super():访问的是父类的无参构造方法
-
super(xxx):访问的父类的有参构造方法