【Java】 Notes and Insights 8 【面向对象 封装 数据与行为 private关键字 过滤通道 this关键字 构造方法 成员变量初始化 构造方法的重载】

本文探讨了面向对象编程中的封装概念,强调了如何通过封装保护数据安全,以及Java中的private关键字在其中的作用。此外,介绍了构造方法的重要性,用于在创建对象时初始化成员变量,并讲解了this关键字的应用。通过set和get方法实现数据访问的控制,确保了代码的安全性和健壮性。
摘要由CSDN通过智能技术生成

封装

需求 事物 行为 归属
面向对象程序员
多多查阅 JDK-API文档.CHM
Java已经设计好了许许多多的对象,只需将处理的数据交给它,调用其中的操作即可,不需要自己去写代码

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

封装 告诉我们如何正确设计对象的属性和方法
对象代表什么,就得封装对应的数据,并提供数据对应的行为

public class Circle {
    
    double radius;
    
    public void draw(){
        sout("根据半径" +  radius + "画一个圆")
    }
}

只是调用了圆的一个方法去画了一个圆而已

面向对象的程序设计
类比于人给门一个作用力,门自己关上了(门会封装一个状态数据)
网络编程也需要Socket对象来进行网络连接

封装思想

创建对象调方法即可
对象代表什么,就得封装对应的数据,并提供数据对应的行为
这实际上大大降低了我们学习的成本

我们有许许多多的对象,每个对象中也拥有许许多多的方法
例如String 用来代表需要操作的字符串

面向过程去编程(主要是C语言)就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
而面向对象(c++,c#,java,delphi)是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。

我们所面对的是一堆对象 ,一堆方法
我们的JDK-API文档.CHM就相当于字典
有什么事情,找对象,调方法
从而写出安全健壮的代码

private 关键字

  • 是一个权限修饰符 同 public
  • 可以修饰成员(也即成员变量和成员方法)
  • 被 private 修饰的成员只能在 本类 中才能访问 (私有) 不让外界直接访问
  • public 表示在所有的类当中都可以使用其修饰的成员

正确的可以赋值,错误的不可以
导致每次判断不方便,还是 private 私有掉比较好(数据安全)

过滤通道

Java中当定义了一个私有的成员变量的时候,如果需要访问或者获取这个变量的时候,就可以编写 set 或者 get 方法去调用,set 是给属性赋值的,get 是取得属性值的,被设置和存取的属性一般是私有的,主要是起到封装作用不允许直接对属性进行操作
在类中使用 set 和 get 方法时,都是在 set 和 get 后面跟上一些特定的词来形成特定意思的方法名,比如 setAge () 和 getAge (),表示设置年龄和获取年龄
setAge 赋值通道
getAge 获取通道
通过private私有关键字保证数据的安全性
通过get() or set(参数) 方法 (都用public修饰) 来进行数据传递(访问 操作)
同时在方法里可以进行判断

this 关键字

set 赋值 get 提供返回值(获取

局部变量 :定义在方法里面
成员变量 :定义在类里面,方法的外面

重名时就近原则

public class GirlFriend {
		private int age; // 成员变量
		public void method(){
			int age = 10; // 局部变量
			System.out.println(this.age);
		}
}

就近原则 : 谁离我近 , 我就用谁
this.关键字:直接使用成员位置的变量(打破默认的就近原则)

构造方法(一种特殊的方法)

也即 构造器 构造函数
作用:在创建对象的时候给成员变量进行初始化(赋值)的

    修饰符 类名(参数) {
         方法体;
    }

 public Student(String name, int age) {
        this.name = name;
        this.age = age; // 直接保证赋值给成员变量
    }

特点:

  1. 方法名与类名相同,大小写也一致
  2. 没有返回值类型,连void都没有(函数没有返回值)
  3. 没有具体的返回值(不能由 return 带回结果数据)

空参构造方法
带全部参数构造方法

创建对象时的执行时机

  1. 创建对象的时候,由虚拟机调用不能手动调用构造方法
  2. 每创建一次对象,就会调用一次构造方法

默认无参的构造方法取决于是否自己定义构造方法(Java会默认添加)

构造方法的重载

  • 带参构造方法,和无参构造方法,二者方法名相同,但是参数不同,也即构造方法的重载
    推荐:无论是否使用,都手动书写无参构造方法,和带全部参数的构造方法
    方便于实际开发和团队作业
    构造方法的作用: 在创建对象的时候,由虚拟机自动调用,给成员变量进行初始化
    由于Java的默认设置,任何类定义出来就自带了无参构造器
    一旦定义了有参构造器,无参构造器就没有了,此时就需要自己写无参数构造器了,这非常重要

然而调用构造方法 只是 创建对象的一步 而已

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zanebla

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值