面向对象
什么是面向对象
-
面向过程思想 面向过程是一个很基本的,一步一步走,第一步,第二步怎么走,清晰简单
适合简单的问题处理 -
面向对象思想 这是一种分类的思想方式,先看有哪些需求,然后再在各个需求里细分过程
适合处理复杂问题
面向对象的本质:以类组织代码,以对象组织数据
三大特性:封装 继承 多态
对象 具体的一个类的实例
类 是对对象的抽象表达
类是对象的模板
回顾方法
定义
- 修饰符
- 返回类型
// 修饰符 返回类型 方法名 (参数列表){
// 方法体
//}
- break和return break是直接结束掉这个循环后面的循环不干了,return是结束掉方法,看到return就是代表方法到此结束,后面的语句都是无效的
- 方法名 首字母小写 驼峰
- 参数列表 可变长参数 ...int 这种形式,可变长参数一定实在参数列表的最后一个
调用
- 静态调用 如果是static的方法,可以直接通过类名去调用这个方法。
- 非静态调用 如果不是static ,那么需要实例化方法所在的类,通过对象去调用
- 形参 实参形参是方法被调用接受外部传值的载体,实参是调用方法是给方法传的值
- 值传递 引用传递
public class Demo01 {
public static void main(String[] args) {
int a = 1;
System.out.println(a);
change(a);
System.out.println(a);
}
static void change(int a){
a = 10;
}
}
public class Demo02 {
String name;
public static void main(String[] args) {
Demo02 person = new Demo02();
System.out.println(person.name);
change(person);
System.out.println(person.name);
}
static void change(Demo02 n){
n.name = "pei";
}
}
运行结果Demo01是输出了两个1,a没有变化 而Demo02输出了 null 和pei
同样是使用了两个void方法,两者运行却不一样
这是因为在Demo01中,change方法里的a指向的不是main方法里的a,仅仅是把10丢给了形参a
而下面的Demo02就不一样了,那个change方法里的n,它是一个Demo02的实例化后的对象,它指到的就是Demo02 person = new Demo02() 这个里的person,相当于给对象person的name属性赋了pei这个字符串,达到了一个改变的效果