java09 面向对象,封装,继承,多态

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面向对象的三大特点

封装

多态

继承

现在 我们看下,具体面向对象是如何实现的。这一过程实际上是类与对象的事情

环顾周围,有很多摸得着的物体,可以称之为对象,桌子,椅子 ,同学和老师,


什么是类   类是 一组具有相关属性和行为的集合,可以看出是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物

什么是对象: 对象 是对一类事物的具体体现,对象是类的一个实例(对象并不是找个女朋友) ,必然具备该类事物的属性额行为。

属性  该事物的状态信息

行为  该书屋能够做什么

类的定义:类就是对一个具体事务的模拟

属性 是什么 姓名  年龄   java专业属性 成员变量
行为 能做什么 吃饭 睡觉 学习 java专业行为 成员方法
变量就是 数据类型 变量名称 其中姓名 得用String字符串类型
String name 姓名
int age 年龄
成员方法
public static void eat() 吃饭 错误
成员方法的关键点 static 得去掉,因为普通方法加油static
public void eat()
public void sleep()
public void study()

先写成员变量 写成员方法;

成员变量不是局部变量,而成员方法里面的变量叫局部变量

public class nohello {
    /*
    属性 是什么 姓名  年龄   java专业属性 成员变量
    行为 能做什么 吃饭 睡觉 学习 java专业行为 成员方法
    变量就是 数据类型 变量名称  其中姓名 得用String字符串类型
    String name 姓名
    int age 年龄
    成员方法
    public static void eat() 吃饭
    成员方法的关键点 static 得去掉,因为普通方法加油static
    public void eat()
    public void sleep()
    public void study()

     */
    String name;
    int age;
    public void eat(){
        System.out.println("吃饭饭");
    }
    public void sleep(){
        System.out.println("睡觉觉");
    }
    public void study(){
        System.out.println("学习");
    }


}




1.2类的对象创建和使用  导包 创建 使用

1  导包 也就是指出需要使用的类,在什么位置

import 包名称.类名称;

import cn.itcast.day06.demo01.Student


2 创建

类名称 对象名 = new 类名称();

Student stu = new Student();


3 使用 分别两种

使用成员变量 对象名.成员变量名

使用成员方法 对象名.成员方法名(参数)

总结, 想用谁 就用对象名点谁

67381C3E-F89C-4b48-B706-46A98DC53119

定义一个类

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();

    }
}

举例 设立一个手机类


image


DAA28AB7-A443-4aec-83FB-2FBA6E0641E1

32399457-6BC5-4b73-B71B-7954DFA69AF2


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指的是私有化,不可以直接访问了

78E0E931-BCAD-4f2f-A9F2-6E5F7ED215A1

image

正确的访问姿势:

间接访问private 变量,就是定义一对getter和setter方法

两点注意:

1 set和get后的首字母大写

2set是有参数,无返回值,get是无参数,有返回值(返回值类型与成员值变量类型对应)

523292FD-B4DA-4921-B26D-EA4D414F1047

this 关键字 主要用于:




























































posted @ 2019-04-16 14:35  芒果侠  阅读(142)  评论(0编辑  收藏  举报