实验目的:
在集成开发环境下,运用Java语言的面向对象的特性来实现类的封装、构造方法的定义以及对象的实例化和对象方法的调用。
实验目标:
(1)能够根据实际的一类对象通过Java语言来进行类的定义;
(2)能够熟练运用构造方法来实例化对象以及调用对象的方法。
实验内容:
1.定义一个汽车类,要求该类中至少包含5个私有的属性(为每个属性定义设置和获取方法),该类中至少包含两个构造方法(一个无参,一个有参),以及包含5-6个方法来描述汽车对象的行为(其中一个方法要能打印输出汽车对象的所有属性值)。
2.定义一个类,该类中包含以下几个方法(静态):
实现两个字符串数组的逆序排序,输出结果为字符串数组;
求两个整形数组的交集;
求两个浮点型数组的并集;
3.定义一个类:团队(Team),该类中包含一些其它类的对象(教师,研究生,本科生等),为该类定义一个有参的构造方法及一些方法来描述团队的行为。
源代码及结果
1.定义一个汽车类
package experiment11;
public class Car {
private String brand;
private String carNum;
private String color;
private int price;
private String weight;
public void setBrand(String brand) {
this.brand = brand;
}
public String getBrand() {
return brand;
}
public void setCarNum(String carNum) {
this.carNum = carNum;
}
public String getCarNum() {
return carNum;
}
public void setColor(String color) {
this.color = color;
}
public String getColor() {
return color;
}
public void setPrice(int price) {
this.price = price;
}
public int getPrice() {
return price;
}
public void setWeight(String weight) {
this.weight = weight;
}
public String getWeight() {
return weight;
}
public Car(String brand,String carNum,String color,int price,String weight){
this.brand = brand;
this.carNum = carNum;
this.color = color;
this.price = price;
this.weight = weight;
}
public static void people(){
System.out.println("车上已做2人。");
}
public static void life(){
System.out.println("车还有19年寿命。");
}
public static void doing(){
System.out.println("车正在行驶中。");
}
public static void price(){
System.out.println("车的价格有点高。");
}
public static void run(){
System.out.println("车已经行驶了53422公里。");
}
public static void aboutCar(){
Car car=new Car("科迈罗","5598","黄",1567890,"5435吨");
System.out.println("汽车品牌:"+car.brand);
System.out.println("汽车车牌号:"+car.carNum);
System.out.println("汽车颜色:"+car.color);
System.out.println("汽车价格:"+car.price);
System.out.println("汽车空载量:"+car.weight);
}
public static void main(String[] args){
Car.aboutCar();
}
}
package experiment12;
public class Array {
public static void niXu(String str[]){
for(int i = str.length - 1;i >= 0 ;i--){
System.out.printf(str[i]);
}
}
//并集
public static void add(int[] a,int[] b){
int[] c = new int[20];
int k = a.length;
for(int i = 0; i < a.length;i++){
c[i] = a[i];
}
for(int i = 0;i < b.length;i++){
int o = 0;
for(int j = 0;j < k;j++){
if(b[i] == c[j]){
o = 1;
}
}
if(o == 0){
c[k++] = b[i];
}
}
for(int i = 0;i < k;i++){
System.out.print(" " + c[i]);
}
}
//交集
public static void Minus(int[] a,int[] b){
int[] c = new int[20];
int k = 0;
for(int i = 0;i < a.length;i++){
for(int j = 0;j < b.length;j++){
if(a[i] == b[j]){
c[k++] = b[j];
break;
}
}
}
for(int i = 0;i < k;i++){
System.out.print(" " + c[i]);
}
}
}
package experiment12;
public class Test {
public static void main(String[] args) {
String str1[] = {"Hello","World!"};
String str2[] = {"abc","def"};
int a1[] = {1,2,3,4,5};
int a2[] = {6,7,8,9,0,10};
int a3[] = {1,2,3,4,5};
int a4[] = {5,6,7,4};
Array.niXu(str1);
System.out.println("");
Array.niXu(str2);
System.out.println("");
Array.add(a1, a2);
System.out.println("");
Array.Minus(a3, a4);
}
}
package experiment13;
public class Teacher {
private String name;
private String sex;
private int age;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSex() {
return sex;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public Teacher(String name,String sex,int age){
this.name = name;
this.sex = sex;
this.age = age;
}
}
package experiment13;
public class Graduate {
private String name;
private String sex;
private int age;
private String nameGra;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSex() {
return sex;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setNumGra(String numGra) {
this.nameGra = numGra;
}
public String getNumGra() {
return nameGra;
}
public Graduate(String name,String sex,int age,String nameGra){
this.name = name;
this.sex = sex;
this.age = age;
this.nameGra = nameGra;
}
}
package experiment13;
public class Undergraduate {
private String name;
private String sex;
private int age;
private String nameUngra;
public int length;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSex() {
return sex;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setNumUngra(String numUngra) {
this.nameUngra = numUngra;
}
public String getNumUngra() {
return nameUngra;
}
public Undergraduate(String name,String sex,int age,String nameUngra){
this.name = name;
this.sex = sex;
this.age = age;
this.nameUngra = nameUngra;
}
}
package experiment13;
public class Team {
private String name;
private String className;
private int maxNum;
private int currentUcount;//当前本科生数量
private int currentGcount;//当前研究生数量
private Teacher teacher;
private Undergraduate[] undergraduateList;
private Graduate[] graduateList;
public Team(String name,String className,int maxNum){
this.setName (name);
this.setClassName(className);
this.setMaxNum (maxNum);
undergraduateList=new Undergraduate[maxNum / 2];
graduateList=new Graduate[maxNum / 2];
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setClassName(String className) {
this.className = className;
}
public String getClassName() {
return className;
}
public void setMaxNum(int maxNum) {
this.maxNum = maxNum;
}
public int getMaxNum() {
return maxNum;
}
public void setCurrentUcount(int currentUcount) {
this.currentUcount = currentUcount;
}
public int getCurrentUcount() {
return currentUcount;
}
public void setCurrentGcount(int currentGcount) {
this.currentGcount = currentGcount;
}
public int getCurrentGcount() {
return currentGcount;
}
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
public Teacher getTeacher() {
return teacher;
}
public void setUndergraduateList(Undergraduate[] undergraduateList) {
this.undergraduateList = undergraduateList;
}
public Undergraduate[] getUndergraduateList() {
return undergraduateList;
}
public void setGraduateList(Graduate[] graduateList) {
this.graduateList = graduateList;
}
public Graduate[] getGraduateList() {
return graduateList;
}
//指导老师加入
public void tInTeam(Teacher teacher){
this.teacher = teacher;
System.out.println("指导老师"+teacher.getName()+"加入团队"+getName());
}
//本科生加入
public void uInTeam(Undergraduate[] inUndergraduateList)
{
for(int i=0;i< inUndergraduateList.length;i++)
{
uInOneTeam( inUndergraduateList[i]);
}
}
public void uInOneTeam(Undergraduate undergraduate)
{
if(currentUcount==maxNum)
{
System.out.println("该团队本科生已足够");
}
else
{
currentUcount++;
for(int i=0;i<undergraduateList.length;i++)
{
if(undergraduateList[i]==null)
{
undergraduateList[i]=undergraduate;
System.out.println(undergraduate.getName()+"已加入团队");
break;
}
}
}
}
//研究生加入
public void gInTeam(Graduate[] inGraduateList)
{
for(int i=0;i< inGraduateList.length;i++)
{
gInOneTeam(inGraduateList[i]);
}
}
public void gInOneTeam(Graduate graduate)
{
if(currentGcount==maxNum)
{
System.out.println("该团队研究生已足够");
}
else
{
currentGcount++;
for(int i=0;i<graduateList.length;i++)
{
if(graduateList[i]==null)
{
graduateList[i]=graduate;
System.out.println(graduate.getName()+"已加入团队");
break;
}
}
}
}
//输出团队信息
public void Pri(Team team)
{
System.out.println("团队名称:" + team.getName() + " 指导老师:" + getTeacher().getName() + " 课题名称:" + getClassName());
System.out.println("研究生:");
for(int i = 0;i < graduateList.length;i++)
{
if(graduateList[i] != null)
System.out.printf(" " + graduateList[i].getName());
}
System.out.println("\n" + "本科生:");
for(int i = 0;i < undergraduateList.length;i++)
{
if(undergraduateList[i] != null)
System.out.printf(" " + undergraduateList[i].getName());
}
System.out.println("");
}
}
package experiment13;
public class Text {
public static void main(String[] args){
Undergraduate undergraduate1=new Undergraduate("杨杰","男",21,"本科生");
Undergraduate undergraduate2=new Undergraduate("杨浩","男",19,"本科生");
Graduate graduate1 = new Graduate("张钰","女",22,"研究生");
Graduate graduate2 = new Graduate("钟慕寒","男",24,"研究生");
Teacher teacher1 = new Teacher("李程","男",53);
Teacher teacher2 = new Teacher("王晟","男",42);
Team team1 = new Team("研究团队1","人工智能",15);
Team team2 = new Team("研究团队2","Gps",20);
team1.tInTeam(teacher1);
team2.tInTeam(teacher2);
team1.gInOneTeam(graduate1);
team2.gInOneTeam(graduate2);
team1.uInOneTeam(undergraduate1);
team2.uInOneTeam(undergraduate2);
team1.Pri(team1);
team2.Pri(team2);
}
}
实验小结
我通过本实验,我学习到了如何创建一个对象,并且利用该对象调用类的成员函数,以及学会了使用构造函数来初始化类的成员变量。了解构造函数是类函数,函数名与类名完全相同,无返回值。允许在一个类中编写若干个构造方法,但是必须保证它们的参数不同,参数不同是:参数的个数不同,或参数个数相同,但参数列表中对应的某个参数的类型不同。