面向对象三大特征:
1、封装性
对外部不可见
2、继承性
扩展类的功能
3、多态性
方法的重载
对象的多态性
构造方法:
构造方法名称必须与类名一致
构造方法没有返回值
构造方法主要用来为类中的属性初始化
引用传递
This 关键字
1、表示类中的属性和调用方法;
2、调用本类的构造方法;
3、表示当前对象;
<span style="font-size:18px;">package test04;
class people{
private String name;
private int age;
private String sex;
public people(String name,int age){
this();//调用本类的构造方法;
this.name = name;//表示类中的属性和调用方法
this.age = age;
}
public people(){
sex = "man";
System.out.println("smncjdksjdkjs");
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}
public void tell(){
System.out.println("姓名:"+this.getName()+"年龄:"+this.getAge()+"性别:"+sex);
}
}
public class thistest {
public static void main(String[] args){
people p = new people("张三", 23);
p.tell();
}
}</span>
Static 关键字
1、使用 static声明属性
Static声明全局属性
2、使用static声明方法
直接通过类名调用
3、注意点:使用static方法的时候,只能访问static声明的属性和方法,而非static声明的属性和方法是不能访问的。
4、静态static的函数不能调用非static的函数(方法)和变量(属性)
继承
1、继承基本概念:扩展父类的功能
2、Java中使用extends关键字完成继承
Class 子类 extends 父类{}
<span style="font-size:18px;">package test04;
class person{
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class student extends person{
private int score;
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public void tell(){
System.out.println("姓名:"+getName()+"年龄:"+getAge()+"成绩:"+getScore());
}
}
public class extendsdemo01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
student stu = new student();
stu.setAge(20);
stu.setName("zhang san");
stu.setScore(100);
stu.tell();
}
}</span>
继承的限制:
1、Java中只允许单继承,不可以继承多个类
也就是说,一个类只能有一个父类,但是可以多层继承
2、子类不能直接访问父类的私有成员
1、在子类对象实例化之前必须先调用父类中的构造函数,之后调用子类的构造方法。