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

本文对比了面向过程与面向对象的编程方式,详细解释了面向对象的三大特性:封装、多态和继承,并通过具体示例展示了如何在Java中实现封装。

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 使用 分别两种

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

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

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

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 关键字 主要用于:




























































转载于:https://www.cnblogs.com/rango0550/p/10716928.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值