1、面向过程与面向对象思想概述
A:面向过程思想概述
我们来回想一下,这几天我们完成一个需求的步骤:首先是搞清楚我们要做什么,然后在分析怎么做,最后我们再代码体现。
一步一步去实现,而具体的每一步都需要我们去实现和操作。这些步骤相互调用和协作,完成我们的需求。
在上面的每一个具体步骤中我们都是参与者,并且需要面对具体的每一个步骤和过程,这就是面向过程最直接的体现。
那么什么是面向过程开发呢? 面向过程开发,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调用,完成需求。
面向过程的代表语言:C语言
B:面向对象思想概述
当需求单一,或者简单时,我们一步一步去操作没问题,并且效率也挺高。
可随着需求的更改,功能的增多,发现需要面对每一个步骤很麻烦了。这时就开始思索,
能不能把这些步骤和功能在进行封装,封装时根据不同的功能,进行不同的封装,功能类似的封装在一起。
这样结构就清晰了很多。用的时候,找到对应的类就可以了。这就是面向对象的思想。
2、Java面向对象的特征
封装、继承、多态
3、Java面向对象程序编写(学生类的定义)
A:学生事物
属性: 姓名 , 年龄 , 地址 ...
行为: 吃饭 , 睡觉 , 上课 ...
B:学生事物与学生类的对应关系
属性 ----- 成员变量
行为 ----- 成员方法
C:案例演示
学生类的定义
package org.zhang5.demo;
/**
* @Author: goodboy
* @CreateTime: 2018-12-11 17:30
*/
public class Student {
int age;
String name;
public void eat(){
System.out.println("吃饭");
}
public void study(){
System.out.println("学习");
}
}
学生类的使用
package org.zhang5.demo;
import java.util.Scanner;
/**
* @Author: goodboy
* @CreateTime: 2018-12-11 17:34
*/
public class Test {
public static void main(String[] args) {
Student student = new Student();
student.age = 22;
student.name = "小张";
System.out.println("姓名:"+student.name+" 年龄:"+student.age);
student.eat();
student.study();
}
}
4、匿名对象
A:什么是匿名对象
就是没有名字的对象
B:匿名对象应用场景
a:调用方法,仅仅只调用一次的时候。
b:匿名对象可以作为实际参数传递
C:案例演示
匿名对象应用场景
package org.zhang5.demo;
import java.util.Scanner;
/**
* @Author: goodboy
* @CreateTime: 2018-12-11 17:34
*/
public class Test {
public static void main(String[] args) {
Student student = new Student();
new Student().age = 22;//匿名对象
student.name = "小张";
System.out.println("姓名:"+student.name+" 年龄:"+student.age);//姓名:小张 年龄:0
}
}
5、方法的形式参数是类名的时候如何调用
A:Java中参数传递问题
形式参数
基本类型:形式参数的改变不影响实际参数
引用类型:形式参数的改变直接影响实际参数
B:方法的参数是类名
如果你看到了一个方法的形式参数是一个类类型(引用类型),这里其实需要的是该类的对象。