• 练习


    一:

    利用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()
  • 相关阅读:
    麒麟短线王实战技法
    Silverlight的资源
    Windows Live SkyDrive, Windows Live Sync 和 Live Mesh
    Listview.Subitem.BackColor.ForeColor改变字体颜色和背景
    windows mobile控制面板程序
    Windows Azure百度百科
    wcf中如何Host多个WCF服务?
    强弱跟踪
    修改默认的HTTP Response Header
    DataTable 内部索引已损坏
  • 原文地址:https://www.cnblogs.com/zhaoyunlong/p/11641970.html
Copyright © 2020-2023  润新知