java 运用方法进行两个人的年龄比较

这篇博客探讨了如何在Java中实现封装,通过将Person类的属性设为私有并提供getter和setter方法来限制外部访问。博主创建了一个测试类来演示如何正确地设置和获取年龄,并强调了在类设计中对不需对外公开的内容进行私有化的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

私有private

先从描述一个人的案例说起
定义一个person类
属性:年龄 姓名
行为:判断年龄

怎么才不能让外界任意的去访问使用person类中的属性和行为呢?

所以
需要使用一个Java中的关键字也是一个修饰符 private(私有,权限修饰符)。只要将Person的属性和行为私有起来,这样就无法直接访问。**

年龄已被私有,错误的值无法赋值,可是正确的值也赋值不了,这样还是不行,那肿么办呢?按照之前所学习的封装的原理,隐藏后,还需要提供访问方式。只要对外提供可以访问的方法,让其他程序访问这些方法。同时在方法中可以对数据进行验证。

一般对成员属性的访问动作:赋值(设置 set),取值(获取 get),因此对私有的变量访问的方式可以提供对应的 setXxx或者getXxx的方法。

public class Person {
	// 私有属性
	private int age; // 年龄
	private String name; // 姓名

	// set赋值 get获取值

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	// 共有方法判断年龄
	/**
	 * 定义方法判断年龄 大于 返回1 等于 返回0 小于 返回-1
	 * 
	 * 当前对象和传入进来的对象的年龄做比较即可
	 */
	// 当前对象和传入进来的对象的年龄做比较即可
	
	public int showage(Person person) {

		if (person != null) {
			// 当前对象和传入进来的person对象 的年龄进行对比
			if (this.getAge() > person.getAge()) {
				return 1;
			} else if (this.getAge() == person.getAge()) {
				return 0;
			} else {
				return -1;
			}
		}
		return 0;
	}

	
}

这里我们建一个测试类进行测试

注意:
类中不需要对外提供的内容都私有化,包括属性和方法。
以后再描述事物,属性都私有化,并提供setXxx getXxx方法对其进行访问。
私有仅仅是封装的体现形式而已。

public class TestPerson {
	public static void main(String[] args) {
		// 创建一个人
		Person person1 = new Person();
		
		//set进行赋值
		
		person1.setAge(20);
		person1.setName("小明");
		//创建第二个人
		
		Person person2 = new Person();
		person2.setAge(20);
		person2.setName("小红");
		
		//将引用的方法判断值 赋给一个变量
		int x = person1.showage(person2);
		
		if (x==1) {
			//get获取值
			System.out.println(person1.getName()+"大于"+person2.getName());
		}else if (x==0) {
			System.out.println(person1.getName()+"和"+person2.getName()+"同龄");
		}else {
			System.out.println(person1.getName()+"小于"+person2.getName());
		}

	}
}

运行结果如下
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值