用java编程类的封装_类的封装_Java面向对象 - 编程那点事

接下来针对上一个例中设计的Student类创建对象,并访问该对象的成员,如例所示public class Example {

public static void main(String[] args) {

Student student = new Student();

student.name = "codingwhy";

student.age = -20;

student.introduce();

}

}

运行结果:大家好,我叫codingwhy,我今年-20岁!

在第6行代码中,将年龄赋值为一个负数-20,这在程序中不会有任何问题,但在现实生活中明显是不合理的。为了解决年龄不能为负数的问题,在设计一个类时,应该对成员变量的访问做出一些限定,不允许外界随意访问。这就需要实现类的封装。

所谓类的封装是指在定义一个类时,将类中的属性私有化,即使用private关键字来修饰,私有属性只能在它所在类中被访问。为了能让外界访问私有属性,需要提供一些使用public修饰的公有方法,其中包括用于获取属性值的getXxx()方法和设置属性值的setXxx()方法。接下来通过一个案例来实现类的封装。class Student {

int age;

String name;

public String getName() {

return name;

}

public void setName(String name) {

name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

// 下面是对传入的参数进行检查

if (age <= 0) {

System.out.println("年龄不合法……");

} else {

age = age; // 对属性赋值

}

}

public void introduce() {

// 方法中打印属性name 和age 的值

System.out.println("大家好,我叫" + name + ",我今年" + age + "岁!");

}

}

public class Example {

public static void main(String[] args) {

Student student = new Student();

student.setName("codingwhy");

student.setAge(-20);

student.introduce();

}

}

运行结果:年龄不合法……

大家好,我叫codingwhy,我今年0岁!

在例中的Student类中,使用private关键字将属性name和age声明为私有,对外界提供了几个公有的方法,其中getName()方法用于获取name属性的值,setName()方法用于设置name属性的值,同理,getAge()和setAge()方法用于获取和设置age属性的值。在main()方法中创建Student对象,并调用setAge()方法传入一个负数-30,在setAge()方法中对参数stuAge的值进行检查,由于当前传入的值小于0,因此会打印“年龄不合法”的信息,age属性没有被赋值,仍为默认初始值0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值