基本任务1.2Java面向对象程序

el/2023/9/24 20:54:09

一、任务要求

  • 完成一个Java application应用程序,描述一个人类。要求如下:
  • 要求此人类必须包含有人的姓名、性别、出生日期等基本属性(变量)。
  • 要求此人类描述吃饭的方法(函数)和描述睡觉的方法(函数)。例如睡觉方法的执行体为一个 System.out.println() 函数,此函数输出一段例如“ xx(姓名)往床上躺倒,不久就睡着了……”之类的描述睡觉的文本。
  • 要求此人类的构造函数要具有无参数的构造函数,以及带有姓名、性别、出生日期等参数的构造函数,并在构造函数中输出一段描述xx(姓名)出生的文本。
  • 实例化出张三和李四两个人类对象(变量),并为之赋初值。
  • 调用张三、李四等人类对象的各种属性(类成员变量)和方法(函数)。
  • 在上述人类的基础上派生一个继承自人类的新的学生类,加入学号等学生特有的属性,加入上课、考试等方法,并实例化一个或几个学生类对象,完成这些学生类对象的各种属性和方法的调用。

二、任务的理解

此次的任务主要是针对Java中的类和方法的理解与使用,通过学习了解Java的类与对象知道Java是面向对象进行编程的,在类中可以定义类的属性和类的方法,然后在main函数中进行赋值,调用。还可以通过继承类的方式定义一个新的类使之可以调用父类的属性和方法,并且可以在新的类中定义它特有的属性和方法。

三、完成方法

采用sublime编程软件进行编译,并生成类程序文件,在Windows命令窗口运行,观察运行结果并分析。

四、完成过程与结果

代码内容:

public class task1_2{      //定义一个类String name;           //定义字符串变量nameString gender;         //定义字符串变量genderString date;           //定义字符串变量dateString place;          //定义字符串变量placeint high;              //定义整型变量highint weight;            //定义整型变量weightpublic void eat(String name){                      //定义一个方法eatSystem.out.println(name+"吃饭的时候经常用筷子"); //输出eat的方式}                            public void sleep(String name){                    //定义一个方法sleepSystem.out.println(name+"往床上一躺就睡着了");   //输出sleep的方式}public task1_2(){                                  //无参的构造函数}public task1_2(String name,String gender,String date,String place,int high,int weight){//有参的构造函数//在构造函数中输出一段信息文本System.out.println("姓名:"+name+",性别:"+gender+",于"+date+"出生于"+place+",身高:"+high+"cm,体重:"+weight+"kg");	}public static void main(String[] args){             //main主方法//创建task1_2的对象p1,并给有参构造函数赋值task1_2 p1=new task1_2("胡歌","男","1982年9月20日","上海",185,70);p1.eat("胡歌");                                 //对象p1调用eat方法,并给方法中的参数name赋值p1.sleep("胡歌");                               //对象p1调用sleep方法,并给方法中的参数name赋值task1_2 p2=new task1_2();                       //创建task1_2类的对象p2p2.name="马云";                                 //给对象p2的变量name赋值p2.gender="男";                                 //给对象p2的变量gender赋值p2.date="1964年9月10日";                        //给对象p2的变量date赋值p2.place="浙江";                                //给对象p2的变量place赋值p2.high=166;                                    //给对象p2的变量high赋值p2.weight=56;                                   //给对象p2的变量weight赋值//输出p2这个对象的信息System.out.println("姓名:"+p2.name+",性别:"+p2.gender+",于"+p2.date+"出生于"+p2.place+",身高:"+p2.high+"cm,体重:"+p2.weight+"kg");p2.eat("马云");                                 //p2调用eat方法并赋值p2.sleep("马云");                               //p2调用sleep方法并赋值Student s1=new Student();                      //实例化Student类的一个对象s1s1.name="小明";                                 //给对象s1的变量name赋值s1.gender="男";                                 //给对象s1的变量gender赋值s1.date="1997年1月11日";                        //给对象s1的变量date赋值s1.place="云南";                                //给对象s1的变量place赋值s1.high=175;                                    //给对象s1的变量high赋值s1.weight=60;                                   //给对象s1的变量weight赋值s1.studentID="20202204000";                     //给对象s1的变量studentID赋值s1.classes="20通信班";                          //给对象s1的变量classes赋值//输出学生信息System.out.println("姓名:"+s1.name+",性别:"+s1.gender+",学号为"+s1.studentID+"在"+s1.classes+"学习"+",于"+s1.date+"出生于"+s1.place+",身高:"+s1.high+"cm,体重:"+s1.weight+"kg");s1.goToClass();                                 //调用子类Student类中的方法goToClasss1.goToExam();	                                //调用子类Student类中的方法goToExams1.eat("小明");                                 //调用父类中的方法eats1.sleep("小明");                               //调用父类中的方法sleep} 
}
class Student extends task1_2{                          //创建子类Student继承于task1_2String studentID;                                   //定义子类字符串变量studentIDString classes;                                     //定义子类字符串变量classespublic void goToClass(){                            //创建方法goToClassSystem.out.println("学生的职责就是要上课");       //输出文字} public void goToExam(){                              //创建方法goToExamSystem.out.println("每一位学生都要参加考试,并且要考试合格");//输出文字}
}

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

五、结果分析与总结

程序运行首先进入main函数,第一个人采用实例化对象时给有参构造函数传递参数的值,然后带参数的构造函数输出人物信息。调用方法时要注意如果方法有参数则必须赋值或者传递一个参数。
第二个人实例化对象时没有传递任何参数,所以调用的是无参的构造函数,采用对边成员变量进行赋值的方式,然后输出人物信息。再调用方法。
定义一个学生类继承于上一个类,并在学生类中定义特有的变量属性以及方法,在main函数中对学生类实例化一个对象,并对这个学生的所有属性进行赋值,然后输出学生信息,调用父类和学生类中的所有方法。
这里采用的方法都是无返回值的方法,所以在方法体内输出一段文字代表对此方法调用成功。
需要注意的是方法调用时,参数的数量与类型必须与之相匹配。


http://www.ngui.cc/el/3419331.html

相关文章

基本任务1.3Java API

完成一个 java application应用程序,可以接收用户通过键盘输入的文本,并输出此段文本字符的个数。 代码: package task; //包名 import java.util.Scanner; //导入Scanner类 public class JavaAPI { //创建类public static void…

Tensorflow的安装与配置

Tensorflow的安装与配置 经过多次的安装失败,找寻原因,最终安装成功。 1、基于之前安装的anaconda的基础上进行tensorflow的安装,首先通过按windows键和R键弹出运行框,输入CMD回车,进入cmd命令窗口,先查询…

基本任务1.4java异常捕捉机制

Java异常捕捉机制 任务要求: 一、完成一个 java application应用程序,完成ca/b 的计算并输出c的结果,可以为a和b在程序中赋初值、或者接收用户通过键盘输入a和b的数值文本后转换为数字等,在程序要求当 b 为0时c的计算结果正确。…

基本任务4.2WEB服务

任务要求: 一、学习Tomcat服务器的安装和配置,要求把其WEB根路径从默认值改为自定义的路径,要求把其WEB默认服务端口改为80。二、把基本任务4.1基本任务和挑战任务所完成的静态WEB页面放到WEB服务器根路径下,启动WEB服务器&#…

MySQL Server 5.5安装

MySQL数据库安装 一、下载安装包 网站:https://dev.mysql.com/downloads/installer/ 然后点击下载,也可以下载老版本。 二、安装 MySQL Server 5.5安装步骤如下:(其余版本安装步骤略有不同) 三、测试 在命令…

语音信号线性预测分析

语音信号线性预测分析 基本思想:一个语音取样的现在值可以用若干个语音取样过去值的加权线性组合来逼近(最小均方误差)。线性预测最重要的优势在于它可以较为精确地估计语音的参数,而这些极少的参数可以正确地表现语音信号的时域…

在vue中使用fastclick解决移动端300ms延时问题

第一步:安装插件 把fastclick这个包安装到项目的依赖之中,--save表示开发与上线都需要 npm install fastclick --save 第二步:在main.js中引入插件 import fastclick from fastclick 第三步:在body元素上使用插件 fastclick.attach(document.body)

如何实现洗牌算法?

day09 题目描述: 开发一款扑克游戏,需编写一套洗牌算法,公平的洗牌是将洗好的牌存储在一个整型数组里,每张牌被放在任何一个位置的概率是相等的. 解析: 定义一个洗牌函数,函数内用tmp数组存储1~54表示54张牌,然后对5…

球的反弹高度有多高?

day11 题目描述: 一球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下。求它在第十次落地时,共经过多少米?第十次反弹多高? 解析: 设初始总高度为100米,球每次下落高度反弹回的高度为上一次的一…

如何找出1000以内的“完数“

day12 题目描述: 如果一个数恰好等于它的因子之和,这个数就称为"完数",例如6123.编程找出1000以内的所有完数。 解析: 外层循环1000次,每次循环得到的i传入下个循环内,内部循环求解出符合i整除k等于0的数。…