菁英科技(卓目鸟学苑)- 专注软件测试菁英教育
标题:
Java_白李娜_20210310
[打印本页]
作者:
つ兜兜里没糖
时间:
2021-3-10 19:16
标题:
Java_白李娜_20210310
1.封装:属性设置为私有的private,封装在类的内部,对外提供public的get/set方法供外部调用
好处:在类的内部对参数做一些限制,防止非法调用
class
Student1{
private
String
name
;
private int
age
;
private float
score
;
//
获取属性的值
public float
getScore
() {
return
score
;
}
//
设置属性的值
public void
setScore
(
float
s){
if
(s<
0
|| s>
150
){
System.
out
.println(
"
参数不合法!
"
)
;
}
else
{
score
= s
;
}
}
public int
getAge
(){
return
age
;
}
public void
setAge
(
int
a){
if
(a<
3
||a>
30
){
System.
out
.println(
"
参数不合法
"
)
;
}
else
{
age
= a
;
}
}
}
2.继承:使用extends关键字,继承弗雷德属性,不能继承构造方法
没有显式写extends时,默认是从Object继承的
每个类只能有一个父类,但是可以多层继承。比如,一个类有父类,祖父类,曾祖父类...
子类除了继承父类的方法,也可以有自己的属性和方法
Override 重写 子类重写父类同名的方法
OverLoad 重载
class
Dog
extends
Pet {
private
String
color
;
public
Dog
(String name
, int
age
, int
health) {
// super
超类
/
父类,调用的父类的构造方法
super
(name
,
age
,
health)
;
}
public
Dog
(String name
, int
age
, int
health
,
String color) {
super
(name
,
age
,
health)
;
this
.
color
= color
;
}
public
String
getColor
() {
return
color
;
}
public void
setColor
(String color) {
this
.
color
= color
;
}
}
3.多态:子类的对象可以当做父类的对象来使用
public class
Demo04 {
//
宠物看病的方法
public static void
doctor_shenyi
(Pet pet){
//
传
Pet
或
Pet
的子类
if
(pet.getHealth()<
50
){
System.
out
.println(
"
打针
"
)
;
pet.setHealth(pet.getHealth()+
20
)
;
}
else
{
System.
out
.println(
"
按摩
"
)
;
pet.setHealth(pet.getHealth()+
2
)
;
}
}
public static void
main
(String[] args) {
Dog dog =
new
Dog(
"
小白
"
,
3
,
40
)
;
doctor
(dog)
;
doctor_shenyi
(dog)
;
//
方法的定义的是
Pet
类型的参数,实际传的是
Dog
的类型
System.
out
.println(dog.getHealth())
;
Pet pet =
new
Pet(
"
小小
"
,
2
,
50
)
;
doctor_shenyi
(pet)
;
Cat cat =
new
Cat(
"
加菲
"
,
1
,
80
)
;
doctor_shenyi
(cat)
;
TaiDi taiDi =
new
TaiDi(
"
泰迪
"
,
2
,
70
,
"
白色
"
)
;
doctor_shenyi
(taiDi)
;
doctor
(taiDi)
;
}
}
class
Cat
extends
Pet{
public
Cat
(String name
, int
age
, int
health) {
super
(name
,
age
,
health)
;
}
}
4.抽象类 abstract修饰
有抽象方法的类是抽象类,只有声明,没有实现
抽象类中既可以有抽象方法,也可以有普通方法
抽象类无法实例化,不能去new一个对象
抽象类主要是为了被继承
子类必须实现里面的抽象方法,如果子类不实现抽象方法,子类也只能被看成一个抽象类
5.接口 interface 特殊的抽象类
接口的方法是抽象方法,没有普通方法。方法默认是public abstract 修饰的
接口中的成员变量是常量。默认是public static final修饰的
接口中不能有构造方法
接口采用的是多继承的机制,一个类可以实现多个接口
6.final关键字
修饰类:类不能被继承
修饰方法 : 不能被子类重写
修饰成员变量: 只能被赋值一次,不能修改
修饰局部变量: 只能被赋值一次,不能修改
7.static 静态
修饰成员变量 类名.变量 调用
修饰方法 类名.方法名 调用
8
.package 包
public :修饰类,方法,成员变量,可以被其他类访问,类同名时,把包名带上
protected :修饰方法,成员变量,被 子类,以及子类的子类访问
private :修饰成员变量,方法,限制了只能在类内部访问
缺省 : 修饰类,方法,变量,在当前包生效
欢迎光临 菁英科技(卓目鸟学苑)- 专注软件测试菁英教育 (http://www.zmnxy.com/)
Powered by Discuz! X3.4