006面向对象&封装

    xiaoxiao2025-03-19  13

    01. 面向过程和面向对象思想概述

    什么是面向过程? 什么是面向对象? 面向对象思想的好处是什么? 面向过程: 强调的是过程, 自己通过第一步, 第二步… 一步步的自己去完成对应的需求.面向对象: 强调的是对象, 通过指挥对象去帮我们完成对应的需求. 面向对象是一种[思想], 更符合我们思考问题的一种习惯. (懒人习惯)将复杂的问题简单化将我们从[执行者]的位置, 变成了[指挥者]. Java中讲究万物皆[对象] 可以通过Java代码, 将现实生活的任意一种事物, 都看作为是一个对象 因为任何一种事物都会具备自己的一份[功能].

    02. 类和对象的概述

    类是由哪两部分组成的?

    属性, 行为

    属性: 成员变量 行为: 成员方法

    跟之前定义方法的格式一样, 只不过去掉了static关键字.

    03.成员变量和局部变量的区别

    A:位置不同 成员变量 : 类中方法外 局部变量 : 方法中, 或者是方法的声明上(形参) B:初始化值不同 成员变量 : 有默认初始化值 局部变量 : 没有默认初始化值, 使用之前必须完成赋值才能使用. C:生命周期不同 成员变量 : 随着对象的创建而存在, 随着对象的消失而消失 局部变量 : 随着方法的调用而存在, 随着方法的弹栈而消失 D:内存位置不同 成员变量 : 堆内存 成员变量所属于对象, 所以在堆内存 局部变量 : 栈内存 局部变量所属于方法, 所以在栈内存 E:作用域不同(编写代码) 成员变量 : 在整个类当中. 局部变量 : 仅在它所在的大括号中有效

    04. 对象的使用

    如何创建对象?

    如何调用对象的属性?

    如何调用对象的行为?

    类名 对象名 = new 类名(); Phone p = new Phone();

    对象名.变量名; p.color = “黑色”; System.out.println(p.color);

    对象名.方法名(实际参数); p.call(“张三”); p.sendMessage();

    05. this关键字的概述和使用

    什么是this关键字

    this关键字的作用是什么? 作用: 用来区分局部变量和成员变量的重名问题.

    this.age = age;

    结论: this.就是用来调用本类的成员

    class Person{ String name; public String getName(){ return name; // 如果在使用成员变量的时候, 没有写this. 系统也会默认加上this. // return this.name; } }

    this的概念: this代表当前对象的引用[地址值], 谁来调用我, 我就代表谁.

    06.private关键字的特点

    private关键字是一个权限修饰符 1, 可以用来修饰哪些东西? 成员: 成员变量, 成员方法 2, 被其修饰的[成员], 会具有哪些特点? 特点: 只能在本类中进行访问

    07. 封装的概述和好处

    隐藏实现细节, 仅对外暴露公共的访问方式.

    常见的封装 : 私有成员变量, 对外提供公共的setXxx和getXxx方法. 注意: 私有仅仅是封装的一种体现形式, 不能说封装就是私有. 封装是一个大的思想概念 : 将一段代码, 抽取到方法中, 这就是对代码的一个封装.

    作为调用者, 我不需要关注方法内部的实现原理, 我只需要关注怎样调用

    2. 1. 提高了代码的安全性 -> age : -23 2. 提高了代码的复用性 -> 将一段代码封装到一个方法中, 对方法进行重复调用

    08. 构造方法的概述和使用

    什么是构造方法?构造方法的格式为?构造方法可以有return语句吗?

    构建, 或者说是创造一个对象时候, 调用的方法 创建对象时候, 执行的方法. Person p = new Person();

    .2.方法名与类名相同, 大小写也要一致 没有返回值类型, 连void都没有 . 没有具体返回值 能不能写return? 3.虽然没有具体的返回值, 但是可以有return语句, 用于结束方法.

    09. 构造方法的注意事项

    构造方法注意事项?构造方法能够重载吗?给成员变量的两种初始化方式有什么区别?

    如果一个类当中没有编写任何构造方法, 系统将会提供一个默认的空参构造方法, 保证可以创建对象

    构造方法也是方法, 可以进行重载

    两种初始化方式分别为:

    1. 有参构造初始化 2. setXxx初始化 这两种方式一般都是配合使用的. 一般都会通过有参构造进行[初始化], 随后通过setXxx方法[修改]属性值. Student s = new Student("张三",23); s.setName("李四"); System.out.println(s.getName());
    最新回复(0)