主要有三个特征:封装、继承、多态
封装
体现形式---方法,属性私有化并且提供公共的访问方式来进行正常取值和赋值,提高代码数据安全性。
packagecn.tedu.fengzhuang;
publicclassFZDemo{
publicstaticvoidmain(String[]args){
//创建代表人的类的对象
Personp=newPerson();
//给对象属性赋值
//p.name="豆豆";
//调用方法间接给私有化属性进行赋值
p.setAge(-10);
//p.gender='男';
//调用方法间接给私有化属性进行取值
//System.out.println(p.name+","+p.getAge()+","+p.gender);
}
}
//代表人的类
classPerson{
//属性
privateStringname;
//私有化属性,只能在本类中直接使用
privateintage;
privatechargender;
//Alt+Insert---Generate---GetterandSetter
//java自动提供
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetAge(){
returnage;
}
publicvoidsetAge(intage){
this.age=age;
}
publicchargetGender(){
returngender;
}
publicvoidsetGender(chargender){
this.gender=gender;
}
/*//定义方法间接的给私有化属性进行赋值
publicvoidsetAge(intage){
if(age<0){
System.out.println("数据有误!!!");
}else{
this.age=age;
}
}
//定义方法间接的给私有化属性进行取值
publicintgetAge(){
returnage;
}*/
/*//有参构造
publicPerson(intage){
if(age<0){
System.out.println("数据有误!!!");
}else{
this.age=age;
}
}*/
}
继承
如果多个类的内容出现重复,把重复的内容放到一个新的类中,通过extends关键字让原来的类和新的类产生关联关系---继承。原来的类是子类,新的类是父类。子类可以继承父类部分信息(父类的私有化信息、构造方法以及构造代码块不能被继承)。
package cn.tedu.extendsx;
public class Extends Demo1{
public static void main(String[]args){
//创建子类对象---医生类对象
Doctor d=new Doctor();
d.treat();
}
}
//定义医疗人员类
//基类、超类、父类
class医疗人员{
//属性
String name;
int age;
char gender;
//科室
String dept;
//方法
public void treat(){
System.out.println(name+"在治病救人...");
}
}
//定义代表医生的类
//通过extends关键字让两个类之间产生关联关系----继承
//派生类、子类
class Doctor extends医疗人员{
public void treat(){
System.out.println(name+"拿着手术刀在治病救人...");
}
}
//代表护士的类
class Nurse extends 医疗人员{
}
多态
代码执行过程中呈现的多种形式
java分为编译时期、运行时期
编译时多态---在编译时期绑定代码 体现形式---重载
public void m(){..}
public void m(int i){…}
运行时多态---在运行时期绑定代码 体现形式---重写、向上造型(继承)