Day_06 【类与对象、封装、构造方法】

今日内容
    面向对象的概念
    类与对象
    封装
    构造方法

面向对象的概念
    面向过程:强调的是过程(步骤),关注的是“我该如何做”,所有完成功能的步骤和过程都是自己亲力亲为
    面向对象:强调的是对象,关注的是“谁来帮我做”,其中的“谁”指的就是对象

    面向对象是基于面向过程的

    面向对象的优点:
        (1)更符合人们的思维习惯,懒人思想
        (2)将复杂的事情简单化
        (3)从任务的执行者变成了指挥者

类与对象
    学习编程语言为了解决现实世界的实际问题,使现实世界实现信息化
    在Java语言中我们使用类来描述现实世界的事物

    类                   事物
        成员变量             属性:特点
        成员方法             行为:能够做什么

    类:是对象的抽象描述,是一系列属性和行为的集合,它是模板
    对象:是类的具体体现,它是根据模板创建的一个个具体事物

    类只有一个,但是根据类可以创建出无数个对象
    要创建对象,必须先有类

    类根据作用不同可以分为很多种:
        标准类(JavaBean):描述现实事物类
        测试类:每个类都有主方法,都可以独立运行

    使用一个类的步骤
        (1)创建对象(导包)
            类名 对象名 = new 类名();
            举例:
                Student stu = new Student();
        (2)使用
            成员变量
                赋值
                    对象名.成员变量名 = 新值;     // 这里“.”可以为“的”
                    举例:
                        stu.age = 18;
                取值
                    数据类型 变量名 = 对象名.成员变量名;
                    举例:
                        int age = stu.age;
            成员方法
                调用格式:
                    对象名.成员方法名(参数);
                    举例:
                        stu.study();

类作为方法的形式参数
    形式参数
        数据类型
            基本数据类型
            引用数据类型
                数组
                类
                    JDK提供的:String
                    自定义的:Phone

                接口
                枚举
        变量名


    如果一个类作为方法的形式参数的类型,需要传递的是该类的对象,本质上其实传递的是该对象的内存地址值

类作为方法的返回值类型
    类作为返回值类型,应该使用return返回的是该类的对象,本质上其实返回值的该对象的内存地址值

局部变量和成员变量的区别(面试题)
    (1)定义的位置
        局部变量:在方法的小括号或者大括号
        成员变量:在类中方法外

    (2)作用域(范围)
        局部变量:只能在所在的方法中
        成员变量:在整个类中

    (3)默认值
        局部变量:没有默认值,使用之前必须先赋值,否则就报错
        成员变量:有默认值

    (4)内存中的位置
        局部变量:跟着方法进入栈内存
        成员变量:跟着对象进入堆内存

    (5)生命周期
        局部变量:随着方法的进栈而存在,随着方法的出栈而消失,立刻回收
        成员变量:随着对象的创建而存储,随着对象被垃圾回收机制回收而消失,在合适的时候回收

面向对象的三大特征
    封装
    继承
    多态

封装
    简单说,拿一个箱子装起来,密封起来,让其中的东西对外界不可见

    隐藏实现的细节问题,对外不可见,但是要提供公共(public)的访问方式。

    封装的体现:
        (1)方法
        (2)private修饰成员变量

    private
        是一个关键字,被private修饰的成员变量只能在本类中使用,其他类中不能用

        以后我们都必须用private修饰成员变量,同时提供一对getter和setter方法

this关键字
    this:代表的是当前对象的引用,谁来调用方法,当前对象就是谁,每一个非静态(不是static修饰)方法内部都有一个this
    作用:
        (1)通过this.成员变量的方法调用本类的成员变量
            当局部变量和成员变量同名的时候,通过this.成员变量的方式区分这是一个成员变量

构造方法
    用于创建对象,并给成员变量赋值

    格式:
        public 类名(参数列表){
            // 方法体
            return;
        }

    格式的特点:
       (1)没有返回值,当然也没有返回值类型,连void都没有
       (2)构造方法名和类名一致,大小写也相同
       (3)return;可以省略


给成员变量赋值的方式
    方式一:
         对象名.成员变量名 = 新值;

         不推荐使用,原因是学习了封装之后,所有的成员变量都会用private修饰
         修饰之后,这种方式用不了了

    方式二:
        通过setter方法

        Student stu = new Student();
        stu.setName("张三");


    方式三:
        有参构造

        Student stu = new Student("张三", 30);


今日目标:
    能够编写一个标准的类
        4个组成部分
            (1)使用private修饰成员变量
            (2)给每一个成员变量提供getter和setter方法
            (3)无参构造
            (4)全参构造

            快捷键:
                alt+insert
                + Constructor       生成构造方法
                + Getter & Setter   生成getXxx和setXxx方法

    在测试类中使用标准的类
        (1)创建对象(导包)
        (2)使用成员变量
                取值
                    数据类型 变量名 = 对象名.getXxx();
                赋值
                    a:setXxx()方法
                    b:有参构造
        (3)使用成员方法


 

猜你喜欢

转载自blog.csdn.net/l531003231/article/details/81260348