目录

  • 一、private关键字
  • 二、为什么使用private
  • 三、用private改进代码

一、private关键字

二、为什么使用private

Student类:

public class Student {String name;int age;public void show() {System.out.println(name+" "+age);}
}

main类:

public class class_1 {public static void main(String[] args){Student student=new Student();student.name="哈哈哈";student.age=-18;student.show();}
}

输出:

哈哈哈 -18

这是按照我们给的数据输出的,其实是没有问题的,但是实际情况下我们的年龄不可能为负数,所以说通过对象名直接访问成员变量的方式会存在着安全隐患,我们应该想办法解决,也就是不让外界直接访问成员变量的值

被private修饰的成员只在本类中可以访问,在其他类中不可以被访问

三、用private改进代码

Student类:

public class Student {String name;private int age;public void setAge(int a) {age = a;}public int getAge(){return age;}public void show() {System.out.println("name="+name+ ", " +"age="+ age);}
}

main类:

public class class_1 {public static void main(String[] args){Student student=new Student();student.name="哈哈哈";student.setAge(-30);student.show();}
}

输出:

name=哈哈哈, age=-30

这个时候我们已经在int age 前加上了private,使age变成了一个私有成员变量,这样看输出好像没什么变化,但是写了setAge我们就可以在setAge里边加上一个判断

再次改进:

Student类:

public class Student {String name;private int age;public void setAge(int a) {if (a<0){System.out.println("您输入的年龄有误!!!");return;}age = a;}public int getAge(){return age;}public void show() {System.out.println("name="+name+ ", " +"age="+ age);}
}

main类:

public class class_1 {public static void main(String[] args){Student student=new Student();student.name="哈哈哈";student.setAge(-30);student.show();}
}

输出:

您输入的年龄有误!!!
name=哈哈哈, age=0

这样就可以了,0是由于你的修改值不符合,所以输出默认值

封装-private关键字相关推荐

  1. 成员变量和局部变量的区别、方法的形参为类的情况及匿名对象、封装(private关键字)、this关键字、构造方法、static关键字

    成员变量和局部变量 在介绍类的时候,已经说到了类的成员变量 成员变量是在类中而在方法之外 class ss{ int age; } 局部变量是在方法定义中或者方法声明中 class ss{ publi ...

  2. 7 面向对象(成员变量和局部变量的区别,类作为形式参数的问题,匿名对象,封装,private关键字,this关键字,构造方法,类的初始化过程,static关键字)

    1:成员变量和局部变量的区别(理解) (1)在类中的位置不同 成员变量:类中方法外 局部变量:方法定义中或者方法声明上 (2)在内存中的位置不同 成员变量:在堆中 局部变量:在栈中 (3)生命周期不同 ...

  3. 1.2 private 关键字 面向对象封装

    public class Demo2 {  public static void main(String[] args) {      Person1 p  = new Person1();   p. ...

  4. 面向对象(封装对象private关键字)

    1.面向对象(封装的概述) A:封装概述 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. B:封装好处 隐藏实现细节,提供公共的访问方式 提高了代码的复用性 提高安全性. C:封装原则 将不需 ...

  5. 5 封装性和private关键字

    封装 这一节来看下面向对象三大特征之一的封装. 什么是封装? 封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 封装的优点: 隐藏代码的实现细节,提高安全性. 举个例子,我们日常生活中的插座 ...

  6. 面向对象、封装、private关键字、set和get方法、this关键字、构造方法、API

    文章目录 1. 类和对象 1.1 面向对象和面向过程编程思想 面向过程编程思想 面向对象编程思想 举例对比2种编程思想 1.2 类的概述 类的概述 类的组成 举例 小结 1.3 对象的概述 对象的概念 ...

  7. 黑马—private关键字-封装

    private最常见的应用: 1.把成员变量用private修饰 2.提供对应的getXxx()/setXxx()方法 3.一个标准的案例的使用 直接访问存在安全问题 package blackHor ...

  8. Java学习 第十五章 成员变量和局部变量的区别 / 三大特征之一 (封装性)/构造方法 /private关键字

    第十五章 局部变量和成员变量: 1.定义位置不一样 局部变量:在方法内部定义 成员变量:在方法的外部,直接写在类当中 2.作用范围不一样 局部变量:只能在方法当中使用 成员变量:整个类都可以使用 3. ...

  9. Java面向对象思想、类的定义、对象的使用、对象内存图、成员变量和局部变量的区别、封装、private关键字、this关键字、构造方法、JavaBean-day06

    目录 第1节 面向对象思想 1.1 面向对象思想概述 概述 举例 特点 1.2 类和对象 什么是对象 类与对象的关系 1.3 类的定义 事物与类的对比 类的定义格式 1.4 对象的使用 对象的使用格式 ...

最新文章

  1. C++ string 详解
  2. 使用什么优化器_优化器怎么选?一文教你选择适合不同ML项目的优化器
  3. php简述一下并集交集差集,总结了一下js中的差集、交集、并集
  4. 安装使用Frida在Android上进行hook
  5. python cv2 轮廓的包络 面积_Python + Opencv2 实现轮廓提取,轮廓区域面积计算
  6. IDL读取TXT文件并写入二维数组中【转】
  7. Forms 凭票验证
  8. php cms 那个安全,PHPCMS系统安全设置步骤
  9. 如何自制daplink_DAPLink高速版
  10. 笔记本计算机的功率一般多少,笔记本电脑功率是多少 怎么看笔记本功率多大...
  11. 【成长笔记】图片验证码识别
  12. java控制台打印乱码_java控制台输出出现乱码怎么解决
  13. google play 测试流程梳理及注意事项记录
  14. [合规性检查方法-Fitness3】基于足迹矩阵的拟合度评估方法
  15. MySQL中的锁机制、MyISAM表锁、MyISAM表级锁争用情况、MyISAM并发插入Concurrent Inserts、MyISAM的锁调度
  16. Unity5 0 天空盒 CubeMap
  17. 360个人图书馆复制不了
  18. PacketiX ××× 3.0 免费试用
  19. python--字典版学生成绩管理系统
  20. 使用WPS Office连接Azure DevOps Server (TFS)

热门文章

  1. 超详细!附源码!SpringBoot+shiro+mybatis+Thymeleaf实现权限登录系统
  2. SASS的了解与使用
  3. 解决WIN10系统自带便笺无法使用问题
  4. 【软件】windows录音,如何录制系统内部声音(几乎找遍全网的所有方法)
  5. PLC数据采集的方法小结及成本比较
  6. 指令: JO、JNO、JB、JNB、JE、JNE、JBE、JA、JS、JNS、JP、JNP、JL
  7. 苹果m1终于使用虚拟机和安装 Windows 系统啦!!ARM版Win10系统(苹果m1 win10),速看!!
  8. go语言的数据库框架gorm入门Mac系统
  9. 研究生,该学单片机还是PLC?
  10. 使用kettle导入txt文件