练习

一:

利用Vector代替数组处理:从键盘读入学生成绩(以负数代表输入结束),找出 最高分,并输出学生成绩等级。
提示:数组一旦创建,长度就固定不变,所以在创建数组前就需要知道它的 长度。而向量类java.util.Vector可以根据需要动态伸缩。
创建Vector对象:Vector v=new Vector(); 给向量添加元素:v.addElement(Object obj); //obj必须是对象 取出向量中的元素:Object obj=v.elementAt(0);
注意第一个元素的下标是0,返回值是Object类型的。 计算向量的长度:v.size(); 若与最高分相差10分内:A等;20分内:B等;
30分内:C等;其它:D等
import java.util.Scanner;
import java.util.Vector;

public class ScoreTest {
    public static void main(String[] args) {
        // 1 创建Scanner 对象获取从键盘输入的信息

        //2 创建Vector对象:Vector v=new Vector();

        // 3 通过for(;;) 或者while(true) 给向量添加元素:v.addElement(Object obj); //obj必须是对象

        // 3.1 当输入是负数是跳出循环
        
        // 获取学生的最大成绩


        Scanner scanner = new Scanner(System.in);

        Vector v = new Vector();
        int maxScore = 0;
        for (; ; ) {
            System.out.println("请输入学成成绩, 以负数代表结束");
            int score = scanner.nextInt();
            if (score < 0) {
                break;
            }

            if (score > 100) {
                System.out.println("成绩太大了");
                continue;
            }
            //如果添加的是对象那么输入的数字要转化为包装类
            Integer integer = new Integer(score);
            v.addElement(integer);
            if (maxScore < score) {
                maxScore = score;
            }
        }

        char level;
        for (int i = 0; i < v.size(); i++) {
            Object obj = v.elementAt(i);  //取出数据
//            Integer integer = (Integer) obj;
//            int score = integer.intValue();
            int score = (int) obj;
            if (maxScore - score <= 10) {
                level = 'A';
            } else if (maxScore - score <= 20) {
                level = 'B';
            } else if (maxScore - score <= 30) {
                level = 'C';
            } else {
                level = 'D';
            }
            System.out.println("student:" + i + "score is :" + score + "," + "level is :" + level);

        }


    }
}
解答
  1. 如何实现向下转型?需要注意什么问题?如何解决此问题?

    

无继承关系的引用类型间的转换是非法的 
在造型前可以使用instanceof操作符测试一个对象的类型

2:

  1. == 和 equals()有何区别?
1 == 既可以比较基本类型也可以比较引用类型。对于基本类型就是比较值,对于引用类型 就是比较内存地址
2 equals的话,它是属于java.lang.Object类里面的方法,如果该方法没有被重写过默认也 是==;我们可以看到String等类的equals方法是被重写过的,
        而且String类在日常开发中 用的比较多,久而久之,形成了equals是比较值的错误观点。
3 具体要看自定义类里有没有重写Object的equals方法来判断。
4 通常情况下,重写equals方法,会比较类中的相应属性是否都相等

3: 

3.    class User{
String name;
int age;
        //重写其equals()方法
}
4. 写出8种基本数据类型及其对应的包装类

5. 基本数据类型、包装类与String三者之间如何转换
基础 ---> Wrapper : 直接调用 Wrapper的构造器 new  Wrapper

Wrapper----> 基础 : 调用Wrapper的XXValue()

Wrapper/基础 ----> String  : String.ValueOf()

String ----> Wrapper/基础  : String.parseXX()
原文地址:https://www.cnblogs.com/zhaoyunlong/p/11641970.html