java基础-面向对象(2)

本文探讨Java中的面向对象编程,重点讲解类的设计和封装概念。通过学生类(Student)作为示例,解释如何定义属性如name和age,并实现封装,限制外部直接访问私有属性,提供公有方法如getName(), setAge()等确保数据的合理性。文章最后鼓励读者留言交流。" 113441200,10553507,SpringBoot+Security+JWT 实现用户登录限制:一人一账号,"['Spring Security', 'JWT', 'SpringBoot开发', '用户管理']

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


java基础面向对象(2)


类的设计
在java中,对象是通过类创建出来的。因此,在程序设计的时候,最重要的就是类的设计。接下来通过一个具体的案例来学习如何设计一个类。
假设要在程序中描述一个学校所有学生的信息,可以先设计一个学生类(Student),在这个类中定义两个属性name,age分别表示学生的姓名和年龄,定义一个方法introduce()表示学生做自我介绍。根据上面的描述设计出来的Student类如下:

public class Student{
			String name;
			int age;
			public void introduce(){
				//方法中打印属性name和age的值
				System.out.println("大家好!我叫"+name+",我今年"+age+"岁!");
			}
	}

在上面例子的Student类中,定义了两个属性name和age。其中的name属性为String类型,在java中使用String的实例对象表示一个字符串,例如:

String  name = "李芳";

关于字符串的相关知识在另外的博客上会写到,在这里呢可简单的将字符串理解为一连串的字符。


类的封装


接下来针对上面设计的Student类创建对象,并访问该对象的成员,如下:

public class Test{
			public static void main (String[] args){
			Student stu = new Student(); //创建学生对象
			stu.name = "李芳";  //为对象的name属性赋值
			stu.age = -20;   //为对象的age属性赋值
			stu.introduce();   //调用对象的方法
			
	}
	}

运行的结果为:

大家好!我叫李芳,我今年-20岁!

在上面的例子中,将年龄赋值为一个负数-20,在这里程序中不会有任何问题,但在现实生活中明显是不合理的。为了解决年龄不能为负数的问题,在设计一个类时,应该对成员变量的访问做出一些限定,不允许外界随意访问。这就需要实现类的封装。
所谓类的封装是指定义一个类时,将类中的属性私有化,即使用private关键字来修饰,私有属性只能在它所在类中被访问。为了能让外界访问私有属性,需要提供一些使用public修饰的公有方法,其中包括用于获取属性值的getXxx()方法和设置属性值的setXxx()方法。
接下来通过一个案例来实现类的封装。

class Student{
		private String  name;
		private int age;
		public String getName(){
				return name;
	}
	public void setName(String stuName){
				name = stuName;
	}
	public int getAge(){
				return age;
	}
	public void setAge(int stuAge){
				if(stuAge <= 0){\
						System.out.println("年龄不合法........");
			}else{
						age = stuAge;
			}
	}

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

public class Test1{
		public static void main (String[] args){
				Student stu = new Student(); //创建学生对象
				stu.name = "李芳";  //为对象的name属性赋值
				stu.age = -20;   //为对象的age属性赋值
				stu.introduce();   //调用对象的方法
}
}

运行结果为:

年龄不合法........
大家好!我叫李芳,我今年-20岁!

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

那么关于类的设计和类的封装,就写到这里,大家看完我描述的话语之后是否有点头绪呢???
**

期待你们的评论哟

**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值