Java 继承与多态实验

7 篇文章 0 订阅


实验讲义

 

上机题目一:试以Point类为例,尝试对Object类的clone()方法和equal()方法进行覆盖。

上机题目二:现在输入n个数字,以逗号分开、放入一个字符串中,然后按升序和降序排序,并显示排序结果。


第一个实验的代码

package com.whj.exam2;

public class Text {
	public static void main(String[] args) throws CloneNotSupportedException 
	{
          Piont p=new Piont(8,6);
          Piont q=(Piont)p.clone();
             System.out.println(p);
             System.out.println(q);
             System.out.println(q==p);
             System.out.println(q.equals(p));
	}

}

package com.whj.exam2;
public class Piont {
      private int x;
      private int y;
	public int getX() {
		return x;
	}
	public int getY() {
		return y;
	}
	public Piont(int x, int y) {
		super();
		this.x = x;
		this.y = y;
	}
	@Override
	protected Object clone() throws CloneNotSupportedException {//异常化处理
		return new Piont(x,y);
	}
	@Override
	public boolean equals(Object obj) {
	if(((Piont)obj).x==this.x&&((Piont)obj).y==this.y)
	      return true;
	else 
		return false;
	}
	@Override
	public String toString() {
		return x+" "+y;
	}
	
      
}
第一个实验主要是对object类中的equals(),clone(),tostring()类进行覆盖,覆盖中没有改变返回值的类型,所以我们就对他进行强制转换。

下面是第二个实验
package com.whj.exam2;

import java.util.Arrays;

public class NumerTest {
	public static void main(String[] args) {
           String [] str=splitstr.split("8,6,12,19,11,17");//定义分离字符串的类
           int []number=new int [str.length];
           for(int i=0;i<str.length;i++)
           {
        	   number[i]=Integer.parseInt(str[i]);//把字符转化为整型数
           }
           Arrays.sort(number);//进行排序
           for(int i=0;i<str.length;i++)
           {
        	   System.out.println(number[i]);
           }
           System.out.println();
           for(int i=(str.length-1);i>=0;i--)
           {
        	   System.out.println(number[i]);
           }
	}

}
package com.whj.exam2;

import java.util.StringTokenizer;//StringTokenizer 这个类 用来分割字符串

public class splitstr {
	public static String[] split(String str) {
		if(str==null||str.trim().equals(""))//trim()方法是去掉字符串前后的空格;
		{
			return null;
		}
		StringTokenizer s1=new StringTokenizer(str,",");//标记分离的标准,遇到,就分离;(分隔符)
		String []s2=new String[s1.countTokens()];//计算在生成异常之前可以调用此 tokenizer 的 nextToken 方法的次数
		int i=0;
		while(s1.hasMoreTokens())//判断s1对象里的hasMoreTokens()方法是否有返回值(看有没有下一个匹配的字段)
		{
			s2[i]=s1.nextToken();//nextToken() 用于返回下一个匹配的字段
			i++;
		}
		return s2;
	}

}
做第二实验深刻感受到了 java语言与c语言的差别,java在写程序的时候,先是看api里面有没有我们需要的类,然后再查找里面的方法,而不是一开始就自己动手去写,用java还是有点不太适应,感觉java里面的类和方法真的好多,还有好多都不熟悉,还要好好努力啊!!

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值