Java-类设计综合实验

Java-类设计综合实验

介绍:vet & Pet
备注:因为代码由多个类上传,所以本文不会粘贴代码,只是总结

1、代码思路总结

总体思路

因为是写一个综合的实验,设计多个类、接口和功能;所以需要:

1、先弄清楚各个类、接口之间的关系(继承、实现…)

2、再看main函数,对比函数输出,了解程序大致功能、输出、以及每个类需要实现的功能等 (刚开始的时候,没有看主函数,导致功能不全)

代码规范

类中,定义了一个private变量,一定要写个get方法获取变量的值

private String name;  //pet's name

//返回名字
   public String getName(){
      return name;
   }

2、(易错)知识点补充

1、关于数组的定义

误区:

数组长度可以不在创造的时候就规定好

作用:

—这样就可以根据输入参数自行定义数组的长度

代码:

public class Vet implements Database {
    Pet[] clients; //宠物名称
    
    public Vet(int startSize) {
        clients = new Pet[startSize];
   }
}

2、sort函数和Comparable接口

sort函数

排序算法—详见Arrays.sort()详解)

Comparable接口的地位:

Comparable 并重写其 compareTo 方法以实现自然排序(sort)

重写:

关于重写的知识点:

------方法名和输入==“参数”尽量保持一直==,比如,compareTo是object,重写的输入也要是object;

-------如果传入的是类,可以用这个方法调整其所属的类

public int compareTo(Object o) {
   Pet pt = (Pet) o;

本题的要求(忽略大小写)

-----用 ==compareToIgnoreCase==来比较

-----返回值是int型

代码:

public class Pet implements Comparable //实现接口
    
    ················//省略许多代码
    
   	//重写compareTo  
@Override
   public int compareTo(Object o) {
      Pet pt = (Pet) o;
     if( this.getOwner().compareToIgnoreCase(pt.getOwner()) == 0){
         return this.getName().compareToIgnoreCase(pt.getName());
     }else{
        return this.getOwner().compareToIgnoreCase(pt.getOwner());
     }
   }

3、Java 数组

定义:

dataType[] arrayRefVar = new dataType[arraySize];
int[] int1 = new int[10];

4、println中的toString()

问题:

为什么这个代码会调用toString方法?

Person p = new Person();
System.out.println(p1.toString());//TestEquals.Person@15db9742
System.out.println(p);  //TestEquals.Person@15db9742

解答:

看println方法:

public void println(Object x) {
        String s = String.valueOf(x);
    ·········//省略了这里用不到的部分
	}

看valueOf方法:

public static String valueOf(Object obj) {
        return (obj == null) ? "null" : obj.toString();
    }

可以发现,这里就调用了toString方法!!!

总结:

当遇到不理解的函数时,可以阅读其方法,步步迭代,找到原因

5、toString()方法

作用:

官方定义:toString方法会返回一个“以文本方式表示”此对象的字符串。结果是一个简明但易于读懂的信息表达式。

直白点:返回字符串的“详细信息”/“属性”

重写:

正因为其的特殊性,所以经常要重写

6、instanceof关键字

定义:

Java 中可以使用 instanceof 关键字判断一个对象是否为一个类(或接口、抽象类、父类)的实例

------ 输出为TRUE:要么是同一类,要么前者(obj)是后者(class)的子类

boolean result = obj instanceof Class

例子:

Integer integer = new Integer(1);
System.out.println(integer instanceof  Integer);    // true

7、Java指定位数输出

常用方法:

double data = 1.2345;
System.out.println(String.format("%.2f", data)); //1.23

拓展:

JAVA输出指定位数小数

3、Debug

1、变量定义

问题:

cost变量是用来累计所有的花费,而不是单次的花费;

代码:

public double visit(int shots) {
      //记录去过医院
      visits++;
      //计算价格
      int cost;
      cost = (85 + shots * 30);
      this.cost += cost;   //一定要加上之前的this.cost
      return cost;  //而不是this.cost
   }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值