当前位置: 首页 > java >正文

Java——封装(面向对象)

一、封装

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

二、private关键字

(一)介绍

1.是一个权限修饰符,可以修饰成员(成员变量和成员方法)

2.被private修饰的成员只能在本类中才能访问

(二)针对private修饰的成员变量,如果需要被其他类使用,操作如下

1.提供get变量名()” 方法,用于获取成员变量的值,方法用public修饰

2.提供“set变量名(变量类型 变量名)”方法,用于设置成员变量的值,方法用public修饰

(三)举例

//定义一个类
public class TestPhone {String name;
//    将age变量变为私有属性private int age;
//    使用set变量名()来对私有属性修改public void setAge(int a) {if (a >=0 && a<=120) {age=a;}else {System.out.println("您的年龄不符合。");}}
//    使用get变量名()来对私有属性获得public int getAge() {return age;}
//    写一个方法public void sprint() {System.out.println(name+"的年龄是"+age);}
}
public class Text1 {public static void main(String[] args) {TestPhone t = new TestPhone();t.name="张三";t.setAge(110);System.out.println(t.getAge());t.sprint();}
}
//结果
//110
//张三的年龄是110

三、this关键字

(一)介绍

1.this关键字代表所在类的对象引用(引用-地址

2.由于java遵循“就近原则”,所以才使用this关键字来确定成员变量

public class TestPhone {
//    将age变量变为私有属性private int age;
//    使用sert方法更改age变量的值
//    此时因为就近原则,
//所以在set方法中等于号左边和右边的“age”均代表局部变量age
//而并非是类中的成员变量age(所以成员变量age的值为初始值)!public void setAge(int age) {age=age;    }
//    使用get方法获得age变量的值public int getAge() {return age;}
}
public class Text1 {public static void main(String[] args) {TestPhone t = new TestPhone();t.setAge(10);System.out.println(t.getAge());}
}
//结果
//0(初始值)

3.作用:可以调用本类的成员(变量,方法),解决局部变量和成员变量的重名问题 

4.如何区别是否调用的是成员变量,就看有没有同名的局部变量,如果有——并且没在调用时添加“this”关键字,则调用的是局部变量没有——则调用的是成员变量

(二)举例

public class TestPhone {
//    将name和age成员变量变为私有属性private String name;private int age;
//  使用this关键字,将其中一个age变量确定为成员变量,更改成员变量的值public void setAge(int age) {if (age >=0 && age<=120) {this.age=age;}else {System.out.println("您的年龄不符合。");}}public void setName(String name) {this.name = name;}
//    使用get()方法获得成员变量的值public int getAge() {return age;}public String getName() {return name;}public void sprint() {System.out.println(name+"的年龄是"+age);}
}
public class Text1 {public static void main(String[] args) {TestPhone t = new TestPhone();t.setName("张三");t.setAge(10);System.out.println(t.getName());System.out.println(t.getAge());t.sprint();}
}
//结果
//张三
//10
//张三的年龄是10
http://www.xdnf.cn/news/2529.html

相关文章:

  • AI算力革命驱动光模块产业跃迁:800G规模化部署与1.6T技术竞速下的市场新纪元
  • RAGFlow解决Docker Compose include 报错问题
  • Android13增加一个systemservice,并允许APP访问
  • 开源财务软件:企业财务数字化转型的有力工具
  • 图片矫正模型
  • FPGA时钟设计
  • JavaScript之Webpack的模块加载机制
  • 【Linux网络与网络编程】13.五种 IO 模型
  • AIGC(生成式AI)试用 32 -- AI做软件程序测试 3
  • git提交规范记录,常见的提交类型及模板、示例
  • 【音视频】SDL简介
  • 算法题(135):唯一的雪花
  • 大数据系列 | 日志数据采集工具Logstash的架构分析及应用
  • 微信小程序导航栏
  • C++STL(九) :bitset的介绍与使用
  • MCP介绍与使用
  • 第二部分:网页的妆容 —— CSS(上)
  • OpenSSH配置连接远程服务器MS ODBC驱动与Navicat数据库管理
  • 神经网络预测评估机制:损失函数详解
  • adb devices 报权限错误
  • 文件缓冲区(IO与文件 ·III)(linux/C)
  • 使用 malloc 函数模拟开辟一个 3x5 的整型二维数组
  • 基于QT(C++)实现(GUI)旅行查询与模拟系统
  • Python3 (13)循环语句
  • Java SE(3)——程序逻辑控制,输入输出
  • MySQL的锁(InnoDB)【学习笔记】
  • PlatformIO 入门学习笔记(二):开发环境介绍
  • Matlab算例运行
  • MCU ADC参考电压变化怎么办?
  • JS 中call、apply 和 bind使用方法和场景