面向对象总结
面向对象
1.类和对象
概念:对象是生活中的实例,类是一组具有相同属性,和行为的集合。
区别:类是对象的抽象,对象是类的实例化。
2.声明一个类:
public class Person{
//属性 (数据类型 变量名;)
String name;
//方法 (修饰符 返回值 方法名(参数列表){})
public void info(){
System.out.println("我叫"+name);
}
public int workTime(int workTime){
return workTime;
}
}
3.实例化一个类,构建一个对象
类名 对象名 = null;
对象名 = new 类名();
Person p = null;
p = new Person();
类名 对象名 = new 类名();
Person p = new Person();
4.构造方法
1》方法名要和类名完全相同
2》没有返回类型
public Person(String name){
this.name = name;
}
3》当你没有显示声明一个带参构造方法,系统会默认提供一个无参构造方法、
4》当你声明一个带参构造方法,系统不会再给你提供无参构造方法
5.this关键字的作用 当前对象
6.面向对象的三大特点:封装,继承,多态(方法的重载和重写)
7.封装:(把属性私有化,对外提供get,set方法,get用来获取值,set用来赋值 )
public class Person{
//属性 (数据类型 变量名;)
private String name;
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
//方法 (修饰符 返回值 方法名(参数列表){})
public void info(){
System.out.println("我叫"+name);
}
public int workTime(int workTime){
return workTime;
}
}
8.继承 : extends (子类可以继承父类的属性和方法,但构造方法不能继承)
public class Student extends Person{}
9.super关键字 用来解决父类提供了带参构造方法,子类报错的问题
public class Student extends Person{
public Student(String name){
super(name);
}
}
10.方法重载:同一个类中,方法名完全一致,参数列表(参数类型或者个数不同)
public class Person{
//属性 (数据类型 变量名;)
private String name;
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
//方法 (修饰符 返回值 方法名(参数列表){})
public void info(){
System.out.println("我叫"+name);
}
public int info(int workTime){
return workTime;
}
}
11.方法重写:在继承关系中,子类重写父类方法,方法名,参数列表,返回值都要一致
public class Student extends Person{
private int score;
public int getScore(){
return score;
}
public void setScore(int score){
this.score = score;
}
public void info(){
System.out.println("我叫"+name+",成绩是"+score);
}
}
12.final关键字 (不变)
final修饰的变量叫常量,不可改变
final修饰的方法不可被重写
final修饰的类不能被继承
13.static (静态的)
static修饰的变量,方法或者代码块儿在类加载的时候只会加载一次
通常声明一个常量 public static final String GUOJI = "中国";
单例模式:饿汉式(必须要遵循的两个原则:声明私有化构造方法,2.提供公共的静态的方法获得该类的对象)
public class SingLeton{
private SingLeton(){
}
public static SingLeton singLeton = new SingLeton();
public static SingLeton getInstence(){
return singLeton ;
}
}
14.包 com.qhit ctrl+shift+o(快捷方式)
15.修饰符的权限
public 本类中 本包中 不同的包中 项目中
private 本类中
protected 本类中 本包中 (继承关系的不同的包中)
default 本类中 本包中