Java项目案例之--封装的实例
Java项目案例之---封装的实例
- 有一个专业类,有一个专业对象,专业名称:计算机科学与技术,专业编号:J001,专业年限:4,对年限添加约束,如果输入小于0,则默认为0,否则显示输入的值
- 有一个学生类,有一个学生对象,学生姓名:张三,性别:男,年龄:19,对性别添加约束,如果输入不是男或女,则默认为男,否则显示输入的值
- 计算机科学与技术专业的学生张三做自我介绍
public class Major {
private String mname;
private String mnumber;
private int myears;
//无参构造函数
public Major(){}
//带参构造函数
public Major(String mname,String mnumber,int myears){
this.setMname(mname);
this.setMnumber(mnumber);
this.setMyears(myears);
} public String getMname() {
return mname;
} public void setMname(String mname) {
this.mname = mname;
} public String getMnumber() {
return mnumber;
} public void setMnumber(String mnumber) {
this.mnumber = mnumber;
} public int getMyears() {
return myears;
} public void setMyears(int myears) {
if(myears<0){
this.myears = 0;
}else{
this.myears = myears;
} }
}
public class Student { private String sname; private String ssex; private int sage; private Major smajor; //无参构造函数 public Student(){} //带参构造函数1 public Student(String sname,String ssex,int sage){ this.setSname(sname); this.setSsex(ssex); this.setSage(sage); } //带参构造函数2 public Student(String sname,String ssex,int sage,Major smajor){ this.setSname(sname); this.setSsex(ssex); this.setSage(sage); this.setSmajor(smajor); } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getSsex() { return ssex; } public void setSsex(String ssex) { if(!ssex.equals("男")||!ssex.equals("女")){ this.ssex="男"; }else{ this.ssex = ssex; } } public int getSage() { return sage; } public void setSage(int sage) { this.sage = sage; } public Major getSmajor() { return smajor; } public void setSmajor(Major smajor) { if(smajor==null){ this.smajor=new Major(); } this.smajor = smajor; } /** * 自我介绍,第一种方法 * @param mname * @param mnumber * @param myears * @return 姓名,性别,年龄,专业名称,专业编号,专业年限 */ public String print(String mname,String mnumber,int myears){ String pri="自我介绍如下:\n"+"姓名:"+this.getSname()+"\n性别:"+this.getSsex()+"\n年龄:"+this.getSage()+"\n专业名称:"+mname+"\n专业编号:"+mnumber+"\n专业年限:"+myears; return pri; } /** * 自我介绍,第二种方法 * @param major * @return 姓名,性别,年龄,专业名称,专业编号,专业年限 */ public String print(Major major){ String pri="自我介绍如下:\n"+"姓名:"+this.getSname()+"\n性别:"+this.getSsex()+"\n年龄:"+this.getSage()+"\n专业名称:"+major.getMname()+"\n专业编号:"+major.getMnumber()+"\n专业年限:"+major.getMyears(); return pri; } /** * 自我介绍,第三种方法 * @return 姓名,性别,年龄,专业名称,专业编号,专业年限 */ public String print(){ String pri="自我介绍如下:\n"+"姓名:"+this.getSname()+"\n性别:"+this.getSsex()+"\n年龄:"+this.getSage()+"\n专业名称:"+this.getSmajor().getMname()+"\n专业编号:"+this.getSmajor().getMnumber()+"\n专业年限:"+this.getSmajor().getMyears(); return pri; } }
public class Test { public static void main(String[] args){ Major mj1=new Major("计算机科学技术","J001",-4); Student st1=new Student("张三","中间",19,mj1); //自我介绍第一种输出 //System.out.println(st1.print(mj1.getMname(),mj1.getMnumber(),mj1.getMyears())); //自我介绍第二种输出 //System.out.println(st1.print(mj1)); //自我介绍第三种输出 System.out.println(st1.print()); }
}
运行结果:
自我介绍如下:
姓名:张三
性别:男
年龄:19
专业名称:计算机科学技术
专业编号:J001
专业年限:0
Java项目案例之--封装的实例的更多相关文章
- 在java项目中使用log4j的实例
测试log4j的项目结构 Log4j.properties的路径为 src/config/log4j Log4j.properties文件的内容 下面定义日志输出级别是 INFO,并且配置了2个 ...
- Java项目案例之---计算公司员工的工资(面向对象复习)
计算公司员工的工资(面向对象复习) 某公司的雇员分为以下若干类: Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份.方法:double getSalary(int month) ...
- Java项目案例之---登录和修改(JSP)
登录和修改(JSP) 通过案例学习jsp的常用知识点: 1.创建一个Map集合,用于存放学生信息,将学生信息存入Map中 2.通过page将需要的包导入 3.用request.getParameter ...
- java项目中rmi远程调用实例
1.创建一个学生实体类Student.java: package com.RMIdemo.entity; @SuppressWarnings("serial") public cl ...
- Java项目案例:酒店前台客服管理系统
import java.util.Scanner; public class HelloWorld { public static void main(String[] args){ String [ ...
- Java项目案例之---常用工具类练习
常用工具类练习 1. 请根据控制台输入的特定日期格式拆分日期,如:请输入一个日期(格式如:**月**日****年),经过处理得到:****年**月**日 import java.util.Scanne ...
- Java项目案例之---加法计算器(转发和重定向)
加法计算器(转发和重定向) 运行显示: 转发 重定向 代码: index.jsp <%-- Created by IntelliJ IDEA. User: Administrator Date: ...
- Java项目案例之---定时器的使用
定时器的使用 使用定时器,在当前时间的10秒后调用方法,输出语句 import java.text.SimpleDateFormat; import java.util.Calendar; impor ...
- Java项目案例之---开灯(面向对象复习)
开灯(面向对象复习) 设计一个台灯类(Lamp)其中台灯有灯泡类(Buble)这个属性,还有开灯(on)这个方法 设计一个灯泡类(Buble),灯泡类有发亮的方法 其中有红灯泡类(RedBuble)和 ...
随机推荐
- Image Paragraph论文合辑
A Hierarchical Approach for Generating Descriptive Image Paragraphs (CPVR 2017) Li Fei-Fei. 数据集地址: h ...
- GIS基础软件及操作(五)
原文 GIS基础软件及操作(五) 练习五.空间分析的基本操作 空间分析的基本操作 空间分析模块 空间分析是基于地理对象的位置和形态的空间数据的分析技术,其目的在于提取和传输空间信息.空间分析是地理信息 ...
- /etc/passwd和/etc/group文件详解
用户管理 想要知道, 系统中有哪些用户, 可以查看这个文件: /etc/passwd root:x:::root:/root:/bin/bash bin:x:::bin:/bin:/sbin/nolo ...
- [Game-0001] 新手引导逻辑梳理
欢迎任何形式的转载,但请务必注明出处:http://www.cnblogs.com/liangjingyang 欢迎任何形式的转载,但请务必注明出处:http://www.cnblogs.com/li ...
- Bokeh 0.9.0dev 发布,交互式可视化库
快速使用Romanysoft LAB的技术实现 HTML 开发Mac OS App,并销售到苹果应用商店中. <HTML开发Mac OS App 视频教程> 土豆网同步更新:http: ...
- 浅析 C++ 调用 Python 模块
浅析 C++ 调用 Python 模块 作为一种胶水语言,Python 能够很容易地调用 C . C++ 等语言,也能够通过其他语言调用 Python 的模块. Python 提供了 C++ 库,使得 ...
- python的内存分配
一.前言 大多数编译型语言,变量在使用前必须先声明,其中C语言更加苛刻:变量声明必须位于代码块最开始,且在任何其他语句之前.其他语言,想C++和java,允许“随时随地”声明变量,比如,变量声明可以在 ...
- flask(二)
1.装饰器坑 使用装饰器后,视图函数名字相同问题view function错误问题 1.给装饰器加functiontools 2.反向生成url地址标志,指定endpoint(endpoint必须唯一 ...
- Python基础(六) 函数
.函数 函数是对动作的封装 2.1函数的基本结构 #函数的定义 def 函数名(): #函数提 pass #函数的执行 函数名() 2.2参数初识 #形参 def hanshu(aaa): #参数相当 ...
- python网络爬虫(10)分布式爬虫爬取静态数据
目的意义 爬虫应该能够快速高效的完成数据爬取和分析任务.使用多个进程协同完成一个任务,提高了数据爬取的效率. 以百度百科的一条为起点,抓取百度百科2000左右词条数据. 说明 参阅模仿了:https: ...