Java面向对象(二)

我们在正常开发的过程中,发现一个问题: 我们通过对象.变量名的形式给成员变量进行赋值,在赋值年龄的时候 我们居然可以赋值一些不合理的数据,比如我赋值10000 根据现实实际情况来看,年龄赋值10000是不合理。 想一想,如果我们在赋值的时候,加一个判断,校验一下,如果 合理,就允许赋值,如果不合理,就不允许赋值。 那么,我们在哪里加入判断比较合适呢? StudentDemo1是一个测试类,测试类中一般情况下,只允许创建对象,调用方法或者访问成员变量 所以,我们把添加判断的逻辑代码放到Student2类中 而我们的类中有成员变量,成员方法。 成员变量上只能是定义成员变量,加不了判断。 我们经过考虑后决定,另外写一个成员方法,来为年龄进行赋值,在赋值的时候加入判断 虽然我们加入了一个方法传参的形式去给成员变量进行赋值,并且在赋值的时候进行判断 但是呢,我偏偏不使用定义的方法,就使用对象名.成员变量的形式去赋值,依旧可以赋值一些 不合理的值。如果有一个办法可以让外界不能直接的访问到成员变量就好了,这样如果想要 进行对成员变量赋值,就不能通过对象名.成员变量的形式去赋值,只能通过我们定义的方法 去赋值。 有这样的方法,java替我们考虑到了这样的情况,提供了一个关键字给我们使用 这个关键字叫做:private private: 私有的意思,使用private修饰的成员变量,在其他类中不能直接访问

封装: 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。 好处: 隐藏实现细节,提供公共的访问方式 提高了代码的复用性 提高安全性。 封装原则: 将不需要对外提供的内容都隐藏起来。 把属性隐藏,提供公共方法对其访问。 封装中的private关键字介绍: 1、是一个权限修饰符。 2、可以修饰成员(成员变量和成员方法) 3、被private修饰的成员只在本类中才能访问。

this关键字

 

static关键字

定义一个人的类 经过测试发现,我们举例子的时候,都是中国人,国籍都一样,都是中国 一样的国籍,每次创建的时候,都会在堆内存开辟一个这样的变量空间 总觉得有点浪费。 有没有什么办法,让所有一样国籍的人共用一个国籍的值 针对多个对象拥有共同的成员变量,值是一样的时候 Java提供了一个关键字给我们处理这样的情况,这个关键字叫做:static 可以修饰成员变量和成员方法,修饰成员变量的时候,可以让多个对象共用一个成员变量的值。

static的特点:它可以修饰成员变量和成员方法 1、随着类的加载而加载 运行之前会将class类文件加载到方法区中,而被static修饰的成员是随着 类的加载而加载,所以被static修饰的成员在方法区存放。 回想一下main方法 2、优先于对象存在 3、被类所有的对象共享 举例:所有的中国人的国籍信息都一样 什么时候使用static关键字呢? 如果说明某个成员变量是被所有对象共享的,那么它就应该被定义为静态的。 举例: 哈罗单车:(可以被static修饰) 自己的水杯:(不可以被static修饰) 4、被静态修饰的成员可以直接通过类名调用 一般情况下,我们今后开发的时候,只要看到类中有静态的成员变量或者成员方法 今后调用的时候,一律用 类名.静态成员 这样的方式区调用 推荐使用类名的方式调用,这也是规范。 通过调用的方式不同区分不同的成员 所以被静态修饰的成员,一般情况下被称之为:类成员,与类相关的

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值