1 面向对象与过程的区别
面向过程:当需要实现一个功能时,每一个具体的步骤都需要亲力亲为,详细处理每一个细节。
面向对象:当需要实现一个功能时,不关心具体的步骤,而是找一个已经具有该功能的人,来帮我做事。
简单的说,面向对象就是在大规模开发中,执行与调用模块分离。
举例:遍历数组
package com.stema;import java.util.Arrays;public class nohello { public static void main(String[] args){ int [] array = {10, 20, 30, 40}; 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] + ","); } } System.out.println("==============="); //使用面向对象 System.out.println(Arrays.toString(array)); }}结果:[10,20,30,40]===============[10, 20, 30, 40]
找到一个jdk给我们提供好的Array类
其中有一个toString方法,直接就能把数组变成想要的格式字符串。
1.1面向对象的三大特点
封装
多态
继承
现在 我们看下,具体面向对象是如何实现的。这一过程实际上是类与对象的事情
环顾周围,有很多摸得着的物体,可以称之为对象,桌子,椅子 ,同学和老师,
什么是类 类是 一组具有相关属性和行为的集合,可以看出是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物
什么是对象: 对象 是对一类事物的具体体现,对象是类的一个实例(对象并不是找个女朋友) ,必然具备该类事物的属性额行为。
类
属性 该事物的状态信息
行为 该书屋能够做什么
类的定义:类就是对一个具体事务的模拟
先写成员变量 写成员方法;
成员变量不是局部变量,而成员方法里面的变量叫局部变量
1.2类的对象创建和使用 导包 创建 使用
1 导包 也就是指出需要使用的类,在什么位置
import 包名称.类名称;
import cn.itcast.day06.demo01.Student
2 创建
类名称 对象名 = new 类名称();
Student stu = new Student();
3 使用 分别两种
使用成员变量 对象名.成员变量名
使用成员方法 对象名.成员方法名(参数)
总结, 想用谁 就用对象名点谁
定义一个类
package com.stema;public class nohello { String name; int age; public void eat() { System.out.println("吃饭饭"); } public void sleep() { System.out.println("睡觉觉"); } public void moon() { System.out.println("学习"); }}
package com.stema;public class nohello1 { public static void main(String[] args){ nohello stu = new nohello(); System.out.println(stu.age); System.out.println(stu.name); stu.name = "赵丽颖"; System.out.println(stu.name); stu.eat(); }}
举例 设立一个手机类
2 封装
封装性在java中的体现:
1方法就是一种封装
2关键字private也是一种封装
封装就是将一些细节信息隐藏起来,对于外界不可见。
以下对 1 方法就是一种封装 进行阐释
package com.stema;public class nohello1 { public static void main(String[] args){ int[] array = {1,2,3,4,5}; int max = getMax(array); System.out.println("最大值" + max); } public static int getMax(int[] array){ int max = array[0]; for (int i = 0; i < array.length; i++) { if (array[i] > max){ max = array[i]; } } return max; }}
以下对 2关键字private也是一种封装 进行阐释
private指的是私有化,不可以直接访问了
正确的访问姿势:
间接访问private 变量,就是定义一对getter和setter方法
两点注意:
1 set和get后的首字母大写
2set是有参数,无返回值,get是无参数,有返回值(返回值类型与成员值变量类型对应)
this 关键字 主要用于: