面向对象(1)
- 面向过程与面向对象不同
- 属性+方法 = 类
- 面向过程是线性的,一步一步进行
- 面向对象是分类的思想,对这些类进行单独思考,问题需要怎样分类,再进行面向过程进行
- 面线对象是整体上合理的分析,具体微观要面向过程
- 本质:以类的方式组织代码,以对象的组织封装数据
- 三大特性:封装,继承,多态
- 面向对象来说,先有类后有对象,可以用new来生成一个对象
- 一个类里面只能有一个public,,但是可以有多个class
- 一个包里面,最好只有一个main方法
- 类被实例化后会返回一个自己的对象,new一个对象,则会出现一个新的自己的对象,,新出现的对象就是这个类的具体事例,,同一个类有多个不同的对象
方法:
- oop面向对象
- 方法也在类里面
- 定义一个方法:public,然后是返回值类型,然后是方法名{方法体,return 返回值}
public String sayHello{
return " hello , world ";
}
//三元运算符
return a>b ? a:b
//return 就是代表方法的结束
- 方法的名字需要见名知意
方法的调用:
-
静态方法, static
费静态方法,无static -
静态方法的调用:类名.方法名
非静态方法的调用:new 类名();alt+回车即可,如果要使用时,在把对象名使用即可Student student = new Student ( );
student.方法名 即可
-
其中两个方法必须都是相同类型的,及都是静态或非静态的
形参实参
- public int add( int a, int b){
return a + b;
}
其中,add后面的括号中的是形参
其中实参与形参的类型需要一一对应 - java里的都是值传递;在main方法中的,跟在分方法中的值并不是一个值相等的对象
构造器
- 和类名相同
- 没有返回值
- 作用: new 本质在调用工造方法
初始化对象的值 - 定义一个有参构造后,如果想使用无参构造,需要显示的定义一个无参的构造
- this. 类名 =
this代表当前的这个类 - 注意事项:在非主函数中,this代表最近的,如果是有参类型,则如果this未赋值,则看主函数中是否被赋值,如果没有则为null或0;如果在非主函数中已经被赋值了,则无论主函数中是否赋值,结果都是非主函数中被赋值的值(很绕)