面向对象
面向对象与面向过程的区别
面向过程(pop)
是一种以"过程"为中心的编程思想,当需要实现一个功能的时候,每一个具体的步骤都要亲力亲为,详细处理每一个细节。
面向对象(pop)
是一种以"对象"为中心的编程思想,当需要实现一个功能的时候,不关心具体的步骤,而是找一个已经具有该功能的人,来帮我做事儿。
public class PrintArray {
public static void main(String[] args) {
int[] array = {10,20,30,40,50};
//要求格式为:[10,20,30,40,50]
//使用面向过程
System.out.print("[")
for(int i = 0;i < array.length;i++){
if(i == array.length-1){
System.out.println(array[i] + "]");
} else {
System.out.print(array[i] + ", ")
}
//使用面向对象
//找一个JDK给我们提供好的Arrays类
//其中有一个toString方法,直接就能把数组变成想要的格式字符串
System.out.println(Arrays.toString(array));
}
}
}
总结:
1.客观存在的任何一种事务,都可以看做为程序种的对象
2.使用面向对象思想可以将复杂的问题简单化
3.将我们从执行者的位置,变为了指挥者
类
什么是类
类是对现实生活中一类具有共同属性和行为的事务的抽象,【类】是对事务,也就是对象的一种描述,可以将类理解为一张设计图,根据设计图,可以创建出具体存在的事物
类的组成
属性和行为
定义一个类,用来模拟"学习"事物。其中就有俩个组成部分。
属性(是什么):
该事物的各种特征
例如学生:姓名、年龄、就读学校
行为(能做什么):
该事物存在的功能(能够做的事情)
例如学生:学习。。。。
对应到Java的类当中。
成员变量(属性):
String name; //姓名
int age; //年龄
成员 方法(行为):
public void eat() {};
public void sleep() {};
public void study() {};
注意事项:
1.成员变量是直接定义在类当中的,在方法外边。
2.成员方法不要写static关键字。
public class Student {
//成员变量
String name; //姓名
int age; //年龄
//成员方法
public void eat() {
System.out.println("吃饭!");
}
public void sleep() {
System.out.println("睡觉!");
}
public void study() {
System.out.println("学习!");
}
}
类和对象的关系
- 类是对一类事物的描述,是抽象的;
- 对象是一类事物的实例,是具体的;
- 类的对象的模板,对象是类的实体
对象的创建及使用
通常情况下,一个类并不能直接使用,需要根据类创建一个对象,才能使用。
1.导包
也就是指出需要使用的类,在什么位置。
import 包名称.类名称
例如 import cn.xxx.Student;
对于和当前类属于同一个包的情况下,可以省略导包语句不写。
2.创建
格式:
类名称 对象名 = new 类名称()
Student stu = new Student();
3.使用
使用成员变量:
对象名.成员变量名
使用成员方法:
对象名.成员方法名(参数);
4.注意:
俩个对象使用同一个方法没有任何联系
当一个对象作为一个参数,传递到方法当中时,实际上传递进去的是对象的地址值。
当使用一个对象类型作为返回值时:
返回值其实对象的地址值.
类型要对应
public class Demo02Student {
public static void main(String[] args) {
//1.创建,格式:
//类名称 对象名 = new 类名称();
Student stu = new Student();
//2.使用其中的成员变量,格式:
//对象名.成员变量名;
System.out.println(stu.name);// null
System.out.println(stu.age);// 0
//改变对象当中的成员变量数组的内容
//将右侧的字符串,赋值交给Stu对象当中的name成员变量
stu.name = "刘欢";
stu.age = 18;
System.out.println(stu.name);// 刘欢
System.out.println(stu.age);// 18
System.out.println("=====================")
//3.使用对象的成员方法,格式:
//对象名.成员方法名()
stu.eat();
stu.sleep();
stu.study();
}
}