第五节 面向对象
1.面向对象:java体系的重点,核心,格式化。(理论大于实践)
面向:代表的是以...方式来做...的事。
对象:在程序中代表一个具体的实例。
面向过程:把大象装冰箱分几步?
1.把冰箱门打开
2.把大象放冰箱里
3.关上冰箱门
面向对象(Oriented-Object Programming):
问题1:如何用面向对象的思维方式来解决问题?
把大象装冰箱
找出”对象“:冰箱 人 大象
以对象的方式进行编程。
定义:如果我们遇到一个问题的时候,先不论考虑如何解决问题,先将问题中的“对象找到”,再去解决问题。
对象:就是生活中的具体物品,事物;看得见,摸得着的,真是存在的。
问题2:对象是如何在程序中定义的。
构建
类class---------->对象object。
类和对象关系:
类是对象的抽象(概念)
对象是类的具体(实例)物品
例如:红色字体是类,绿色是对象
汽车: A6 ,黑色的, 车牌号:黑A:8888
人:身份证号,姓名,
在java程序中的类:
语法结构:
访问修饰符 class 类的名字{
}
在java程序中的对象:
语法结构:
类的名字 变量名
类的组成部分:
1.成员属性:
访问修饰符 数据类型 变量名;
public String name;//声明
public String name = ”小黑“;//初始化
2.方法(行为,动作):
语法结构:
无返回值 无参数
访问修饰符 返回值类型 方法名(){
}
public void eat(){
}
无返回值 有参数
访问修饰符 返回值类型 方法名(参数列表){
}
public void eat(String food){
System.out.println("吃了" + food);
}
有返回值 无参数
访问修饰符 返回值类型 方法名(){
}
public String eat(){
return 结果;
}
有返回值 有参数
访问修饰符 返回值类型 方法名(){
}
public int add( int a ,int b ){
int c = a+b;
return c ;
}
重点:
如果在同一类中出现了相同的方法名,参数列表不同,这个现象叫做方法的重载,与返回值无关,
它会根据方法的入参的类型。个数,顺序有关。
无返回值的方法不可以二次利用,但是有返回值的方法可以二次利用,这个要看类中定义的功能具体
要求,没有固定的用法,要灵活使用方法。
5.属性的访问器:setter getter
public void setStudent( String name){
student = name ;
}
public String getStudent(){
return student;
}
3.构造器,构造函数
构造方法是不是方法?
是,是特殊的方法,没有返回值的方法。
构造器的作用:规范对象的创建,给成员属性赋值。
语法结构:必须这么写
访问修饰符 类名(参数列表){
}
Java中给属性赋值的三种方式:=赋值, 属性的访问器(最多),构造方法。
注意事项:当我们在类中定义一个有参的构造器,系统会将默认无参数的构造器去掉,我们就不能再 new+类名()。
只要你在定义一个类,添加有参数的构造器,都添加一个无参数的构造器。
方法之间的相互调用:
普通方法之间只能单向调用:
A调用B,相互调用就会出现java.lang.StackOverflowError 栈溢出错误
int i = 1/0; java.lang.ArithmeticException: / by zero
构造方法的相互调用:
1.必须用this();代替
2.必须放到第一行;
3.必须是是多个参数调用少的参数
4.构造块
语法结构:{ }
5.静态块
语法结构:static { }
类在加载时的执行顺序:1.优先加载静态块,2.加载构造快,游离块,3.构造器
关键字:static 静态的
使用方便,不需要创建对象,直接通过类名.静态属性名,static关键字可以修饰成员属性,成员方法,游离块,全局只加载一次,使用起来方便。
静态方法值必须加载静态资源;非静态方法可以加载静态资源。
仅用于个人学习总结