封装:
将某些东西进行隐藏,然后提供相应的方法去获取。
封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口。
在java中通过关键字private,protected和public实现封装。
封装思想:
将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体就是类,类通常对客户隐藏其实现细节。
四种访问权限修饰符:
java权限修饰符public,protected,private置于类的成员定义前,用来限定对象对该类成员的访问权限。
对于class的权限修饰符只可以用public和default(缺省)
public类可以在任意地方被访问
default类只可以被同一个包内部的类访问
继承:
继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
class 子类 extends 父类 {}
class student{
int ID;String name;int age;
void sayhello(){System.out.println(name);}
}
class student2 extends student{//student2继承了student的属性和方法
String sex;
void set(String name){this.name=name;}//设置器
String get(){return name;}//获取器
}
类只能继承一个父类,单继承性。
属性的覆盖和重写:
覆盖:类内 重写:类间
class student{
int ID;String name;int age=20;
void sayhello(){
String name="张三";//局部变量覆盖类属性name
System.out.println(name);
}
}
class student2 extends student{//student2继承了student的属性和方法
int age=30;//重写age
}
方法的重载和重写:
重载:类内 重写:类间
class student{
int ID;String name;int age;
void sayhello(){System.out.println("hello");}
void sayhello(String name){System.out.println("hello,I am"+name);}//重载
}
class student2 extends student{
void sayhello(String name,int age){//重写
System.out.println("hello,I am"+name);
System.out.println("I am"+age+"years old");
}
}
this和super的使用:
this代表本类
super代表父类
class student{
int ID;String name;int age;
student(){}
student(int ID,String name){this.ID=ID;this.name=name;age=20;}
student(int ID,String name,int age){this(ID,name);this.age=age;}//调用本类的构造方法也就是上面那一条方法
}
class student2 extends student{
String school;
student(int ID,String name,int age,String school){super(ID,name,age);this.school=school;}
//调用了父类student的构造方法
}