今日内容:
一.构造方法
1.定义:
1)类名和方法名相同的方法
2)没有返回值
3)void也没有
构造方法是支持方法重载(方法名相同,参数列表不同,与返回无关)
2.使用构造方法的注意事项:
* 1)一个类中如果没有提供任何构造方法,系统会默认提供一个无参构造方法
* 2)如果一个类中提供了有参构造方法,系统不会提供无参构造方法,如果你还要使用无参构造方法来创建类对象,报错!
* 类名 对象名 = new 类名() ; 默认执行的无参构造方法
3.赋值方式:只有两种
1)有参构造直接赋值
2)通过setXXX赋值
二.static关键字
static关键字的特点
* 1)随着类的加载而加载,
* 类在在加载的时候,静态相关的成员(类成员:静态的变量或者静态的方法),随着类的加载而先进内存(静态区)
* 2)优先于对象存在, 不能和this共存
* 3)static能体现"共享,共用"的意思
* 如果需求中有"共用"含义,这个变量直接使用static修饰
* 4)被static修饰的成员(变量/方法),推荐的访问方式是使用类名.静态变量
* 类名.静态方法名()
*
* 当然可以使用类名 对象名 = new 类名() ;
* 对象名.静态变量() (不推荐)
* 对象名.静态方法() (不推荐)
作用:static 修饰变量达到全局变量的效果,修饰的变量属于类,修饰的方法属于类方法,不需要创建对象就能访问
三.继承
将多个事物(类)的共性内容抽取到一个独立的事物(类)中,
这个事物(类)和其他事物(其他类)之前产生一种关系,称为"继承" 关键字 "extends"
*
* 格式:
* class 父类名{
* 共性内容:属性私有化
* 对外提供公共的访问方法
* //其他成员方法
}
class 子类名 extends 父类名{
}
从下面代码看,继承的特点:
1)提高了代码的复用性
2)提高了代码的维护性(方便后期维护)
3)类与类产生的继承关系,是多态的前提条件!
弊端:
继承的关系:是存在局限性,不要为了使用部分功能而去使用继承!
什么时候使用继承?
如果一个类A是类B的一种,或者B类是A类的一种,这个时候使用"继承"
体现的一种"is a"的关系
水果
苹果
香蕉
橘子...
所有开发原则(接口分离/迪米特/开闭原则/依赖倒置...)都必须遵循: "低耦合,高内聚"(核心原则)
耦合:就是类和类的关系,越少越好 (耦合度只能降低,不能去避免!)
内聚: 某一个类完成某件事情能力!(一个类能完成,尽量一个类去完成!)
* 继承的好处:
* 1)类和类之间的关系,只支持"单继承"
*
* class Fu{}
* class GrandFu{}
* class Zi extends Fu,GrandFu{}//错误的! (多继承,Java没有多继承的概念)
*
* 2)不支持多继承,但是可以 "多层继承"