首页 > 编程语言 >Java面向对象程序设计——带异常处理的person类

Java面向对象程序设计——带异常处理的person类

时间:2024-02-01 17:12:55浏览次数:24  
标签:Java name 面向对象 int age Person person public String

带异常处理的person类

【问题描述】定义一个Person类,属性包含姓名、年龄。方法:无参构造方法、有参构造方法、getter和setter方法、toString方法。其中:setter方法在设置年龄的时候,要求对年龄进行参数的正确性检测,年龄有效范围在1-100之间,否则抛出IllegalArgumentException异常
【输入形式】1-4的整数
【输出形式】当输入1,结果为(zhangsan,50),输入:2,
结果为:
IllegalArgumentException
null
输入3,结果为:
IllegalArgumentException
(zhangsan,0)

import java.util.Scanner;
//-----以下为需填片段-------
class Person {
	String name;
	int age;
	public Person(){
		
	}
	public Person(String name){
		this.name = name;
	}
	public Person(String name, int age) throws Exception{
		this(name);
		setAge(age);
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age)throws Exception{
		if(age>1 && age <100)
			this.age = age;
		else 
			throw new Exception();
	}
	@Override
	public String toString() {
		return '('+name+','+age+')';
	}
}
//------------
public class App {
	public static void main(String[] args) {
		int i;
		Scanner in=new Scanner(System.in);
		i=in.nextInt();
		Person p=null;
		switch(i){
		case 1:
			try{
				p=new Person("zhangsan");
			        p.setAge(50);
			}catch(Exception e){
				System.out.println("IllegalArgumentException");
			}

			break;
		case 2:
			try{
				p=new Person("zhangsan",101);
			}catch(Exception e){
				System.out.println("IllegalArgumentException");
			}
			break;
		case 3:		
			try{
                                p=new Person("zhangsan");
				p.setAge(-1);
			}catch(Exception e){
				System.out.println("IllegalArgumentException");
			}
			break;
		default:
			try{
				p=new Person("zhangsan",20);
			}catch(Exception e){
				System.out.println("IllegalArgumentException");
			}
			
		}
		in.close();
		System.out.println(p);
	}
}

记录Java面向对象课程练习题,方便查阅。如有错误,恳请指出。

标签:Java,name,面向对象,int,age,Person,person,public,String
From: https://www.cnblogs.com/zhuannnn/p/18001651

相关文章

  • Java并发基础:CyclicBarrier全面解析!
    内容摘要CyclicBarrier的优点在于实现了线程间的相互等待与协同,确保所有线程在达到预定屏障点后才能继续执行,它支持屏障的重复使用,非常适合多轮次的任务同步,此外,CyclicBarrier还允许在屏障点执行特定操作,为复杂的多线程协作提供了便利。核心概念业务场景CyclicBarrier允许一组......
  • Hive连接报错:root is not allowed to impersonate root (state=08S01,code=0)
    问题描述使用hive/bin目录下的hive启动客户端,使用!connectjdbc:hive2://hadoop01:10000连接Hive数据仓库时提示输入用户名和密码,输入数据库的用户名和密码报错:Error:CouldnotopenclienttransportwithJDBCUri:jdbc:hive2://hadoop01:10000:Failedtoopennewsession......
  • java学习02
    可以用_和字母和$作为标识符开头,特殊字符不能出现在名字中、float和long类型要在赋值后面加上大写首字母最好避免使用浮点数进行比较,因为浮点数是离散的数,接近但不等于使用时会出问题char字符本质都是数字,通过int类型转换可以知道/u0000可以输出起点/uffff是char终点使用下......
  • Java和JavaScript区别与联系
    JavaScript和java属于两门语言。参考了java语言,“看上去与Java足够相似,但是比Java简单”,是简化版Java语言。特别是在定义对象变量的时候,省略的太极端了。java里有的很多常用类型的对象在js中是没有的。JavaScript由原网景(Netscape)公司的高级工程师布兰登·艾奇(BrendanEich)(曾经的M......
  • 在Java中重写hashCode()方法
    而在重写equals()方法时,总要重写hashCode()方法,原因总结下有以下两点:1.使用hashcode方法提前校验,可以避免每一次比对都调用equals方法,提高效率2.保证是同一个对象,如果重写了equals方法,而没有重写hashcode方法,会出现equals相等的对象,hashcode不相等的情况,重写hashcode方法就是为了......
  • 深入浅出Java多线程(五):线程间通信
    引言大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第五篇内容:线程间通信。大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!!在现代编程实践中,多线程技术是提高程序并发性能、优化系统资源利用率的关键手段。Java作为主流的多线程支持语言,不仅提供了丰富的......
  • 基于Java+Neo4j开发的知识图谱+全文检索的知识库管理系统(源码分析)
    在数字化高度普及的时代,企事业机关单位在日常工作中会产生大量的文档,例如医院制度汇编,企业知识共享库等。针对这些文档性的东西,手工纸质化去管理是非常消耗工作量的,并且纸质化查阅难,易损耗,所以电子化管理显得尤为重要。【springboot+elasticsearch+neo4j+vue+activiti】实现数字......
  • java8计算日期
    java8使用时间计算publicstaticvoidmain(String[]args){LocalDatelocalDate=LocalDate.now();//1.获取周日LocalDatewith=localDate.with(DayOfWeek.SUNDAY);System.out.println(with);//2.获取本月最后一天......
  • Linux系统之安装java开发环境
    Linux系统之安装java开发环境 检查本地系统环境1.检查系统版本检查本地系统版本,本次实践使用的是centos7.6版本。[root@jeven~]#cat/etc/centos-releaseCentOSLinuxrelease7.6.1810(Core)2.检查系统内核版本检查系统内核版本[root@jeven~]#uname-r6.1.8-1.el......
  • Java并发基础:Phaser全面解析!
    内容概要Phaser是Java中一个灵活的同步工具,其优点在于支持多阶段的任务拆分与同步,并且能够动态地注册与注销参与者,它提供了丰富的等待与推进机制,使得开发者能够更细粒度地控制线程的协调行为,实现复杂的并行任务处理,相比于其他同步工具,Phaser更加灵活且易于扩展,适用于多种并发场景......