面向过程
面向过程和面向对象,都是一种设计思想
面向过程:侧重于实现的具体过程,主要设计到方法(函数)
面向对象:面向对象是将问题转行成谁做什么事情(对象干什么)
怎么将大象放进冰箱?
面向过程:
1、开冰箱门
2、把大象塞进去
3、关冰箱门
面向对象:
存在哪些对象(事物)
冰箱、大象、人
1 | 冰箱(){ |
具体过程:
人.打开冰箱门(){}
人.塞大象(){}
人.关闭冰箱门(){}
面向对象
面向对象编程(Object-Orientend Programming,OOP)本质是:以类的方式组织代码,以对象的形式(封装)数据
类(class):类是对一类事物的一个抽象定义
对象(Object):对象是一类事物的具体表现
手机:小米,华为,oppo
电脑:联想,华为,华硕,戴尔
人:亚洲人,非洲人,欧洲人…
类的定义
1 | public class 类名{ |
类中的属性和行为具体要看怎么设计,并不是必须要包含。
对象创建
1 | //语法 |
属性和方法的使用
访问&修改属性
1 | 对象.xxx; |
方法的调用
1 | 对象.方法(); |
内存分析
再看方法
方法的重载
方法的重载:方法的参数列表不一样(类型或个数),方法名一样
1 | public void jia(int x,int y) { |
传值&传引用
传值:方法的参数为基本数据类型,方法中所有进行的更改不会影响原来的实参
传引用:方法的参数为引用类型,若在方法中更改了引用对应的对象,那么在其他地方在去访问对象是,里面的数据将会有变化
public class Test5 {
int x;
public static void main(String[] args) {
Test5 t = new Test5();
int a = 10;
t.f1(a);
System.out.println("main:" + a);
/**********************************/
t.x = 100;
System.out.println(t.x);
t.f2(t);
System.out.println("main:" + t.x);
}
// 传引用
public void f2(Test5 t) {
t.x = 200;
System.out.println("f2:" + t.x);
}
// 传值
public void f1(int a) {
a++;
System.out.println("f1:" + a);
}
}
构造方法
1 | // 构造方法语法: |
- 构造方法可以用来创建对象
- 带参构造方法可以在创建对象时,通过传入参数将对象的属性进行初始化
- 一个类中若没有显示的定义任何构造方法,那么系统将会自动添加一个无参构造方法;
- 若手动定义了一个带参构造方法,但是没有定义无参构造方法,那么类的无参构造方法将会被带参构造方法所覆盖