定义了两个类.
第一个学生类.
第二个学生测试类.
在学生测试类中, 首先在main 方法中, 创建一个对象, 然后通过对象给成员变量赋值, 最后通过对象来调用show 方法.
而show 方法的作用, 是在控制台输出成员变量的值.
运行结果:
现在把 age 的值改为-30.
控制台输出了-30.
但是, 年龄是没有负数的.
所以通过对象名直接访问成员变量的这种方式会存在这数据安全隐患.
应该想办法解决这种方式, 也就是不让外界直接访问成员变量的值, 可以采用private 关键字来实现.
如果一个成员变量被private 修饰了, 在private 这个类外是无法直接访问的, 而在本类中是可以访问的.
set变量名(参数) 中的变量名的首字符要大写.
下面把int age; 改为 private int age;
改完后, show 这个方法中还能访问到age 这个成员变量, 也就是在Student 这个类中还能访问到age 这个成员变量.
但是在学生测试类中访问不到age 这个成员变量.
针对private 设置的值, 提供了get 和set 方法, 用于设置和获取值, get 是获取值, set 是设置值.
Age 的A 要大写.
setAge 方法是用来设置值的, 所以要传递一个形参的值进来, 把参数的值赋值给age.
get 方法是要返回一个值的, 要返回age , age 是int 类型的, 所以返回值类型是int 类型.
现在针对age 这个私有的成员变量, 提供了get 和set 方法.
提供完get 和set 方法之后, 把s.age = -30 注释掉.
现在采用方法来设置成员变量的值.
但是使用方法来设置成员变量的值时, 还是会输入age 还是会输出负数, 和修改前没有区别.
需要在方法中对传入的参数a 进行判断才行.
如果a 给age 的值在0-120 之间, 就可以赋值给age .
给的值为-30, 是小于0的.
输出提示, 并给了age 一个默认值0.
这个0的由来, 是因为设置值失败, 也就是没有给age 赋上值, 但是age 是个成员变量, 是由默认值的.
现在回到测试类, 把s.setAge(-30) 给注释掉, 把s.setAge(30) 给放开.
给了一个正确的值, 就不会给提示信息, 直接把正确的结果赋值成功.