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)和 ...
随机推荐
- WPF DataGrid支持的列类型
WPF DataGrid支持下面几种列类型: DataGridTextColumn DataGridCheckBoxColumn DataGridComboBoxColumn DataGridHype ...
- C#基础:ref和out的区别 [转]
ref和out的区别在C# 中,既可以通过值也可以通过引用传递参数.通过引用传递参数允许函数成员更改参数的值,并保持该更改.若要通过引用传递参数, 可使用ref或out关键字.ref和out这两个关键 ...
- Qt SizePolicy 属性(每个控件都有一个合理的缺省sizePolicy。QWidget.size()默认返回值是(640, 480),QWidget.sizeHint()默认返回值是(-1, -1))
控件的sizePolicy说明控件在布局管理中的缩放方式.Qt提供的控件都有一个合理的缺省sizePolicy,但是这个缺省值有时不能适合 所有的布局,开发人员经常需要改变窗体上的某些控件的sizeP ...
- WebApi实现验证授权Token,WebApi生成文档等 - CSDN博客
原文:WebApi实现验证授权Token,WebApi生成文档等 - CSDN博客 using System; using System.Linq; using System.Web; using S ...
- 有什么很好的软件是用 Qt 编写的?(尘中远)
作者:尘中远链接:http://www.zhihu.com/question/19630324/answer/19365369来源:知乎 http://www.cnblogs.com/grandyan ...
- Linux可以把vmdk当做磁盘加载进去
VMware虚拟机由于停电,无法启动MAC系统 下午的时候,正在开发ios app,结果停电了.当时还不知道,伴随而来的灾难竟然折腾了好几天,真是心力交瘁. 我是在VMware虚拟机下装的Mac os ...
- delphi控件安装(安装ODAC、TeeChart、TServerSocket、TWSocketServer、TComm)
一.oracle插件安装delphi7如何安装oracle access控件 假设ODAC主目录在 D:\dzj\odac Delphi7主目录在 D:\Program Files\Borland\D ...
- 浅谈Linux(Centos7.4)环境下NTP服务器的构建
一.软件环境 1.操作系统版本 [root@Geeklp201 etc]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core ...
- delphi中pos和Ansipos函数的区别
POS和ANSIPOS的主要区别在于,POS参数多用于是一个字符,而ANSIPOS多用于是多个字符: 例如:i:=pos('a','sssssas'); i:=ansipos('abc','sdabc ...
- 界面美化.CStatic控件的美化(好多系列文章)
http://www.cnblogs.com/20090802/archive/2010/09/17/1829283.html 静态控件也是比较常用的控件,在VS开发环境中用的应该挺频繁的吧. 其实m ...