A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dsh 中级黑马   /  2014-10-4 16:10  /  4295 人查看  /  54 人回复  /   2 人收藏 转载请遵从CC协议 禁止商业使用本文

1、 自定义枚举 Week 用于表示星期,Mon,Tue,Wed...要求每个枚举值都有toLocaleString 方法,用于获得枚举所表示的星期的中文格式 星期一、星期二、星期三...






2、 请说明Java中字符'\'的含义,有什么作用?






3、 编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。






4、 写一个方法,此方法可将obj对象中名为propertyName的属性的值设置为value.   

public void setProperty(Object obj, String propertyName, Object value){   

}






5、 编写一个程序,获取10个1至20的随机数,要求随机数不能重复。






6、 统计一个文本文件中字符出现的次数,结果存入另外的一个文本文件中。例如:

        a:  21 次
        b:  15 次
        c: 15 次
        把:  7 次
        当:  9 次
        前:  3 次
        ,:30 次





7、 编写程序,生成5个1至10之间的随机整数,存入一个List集合,编写方法对List集合进行排序(自定义排序算法,禁用Collections.sort方法和TreeSet),然后遍历集合输出。






8、 存在一个JavaBean,它包含以下几种可能的属性:
       1:boolean/Boolean
       2:int/Integer
       3:String
       4:double/Double
     属性名未知,现在要给这些属性设置默认值,以下是要求的默认值:
       String类型的默认值为字符串 www.itheima.com
       int/Integer类型的默认值为100
     boolean/Boolean类型的默认值为true
       double/Double的默认值为0.01D.
  只需要设置带有getXxx/isXxx/setXxx方法的属性,非JavaBean属性不设置,请用代码实现






9、 写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 如: n = 4 则打印:                                

1
2
3
4

12
13
14
5

11
16
15
6

10
9
8
7









10、  金额转换,阿拉伯数字转换成中国传统形式。

例如:101000001010   转换为   壹仟零壹拾亿零壹仟零壹拾圆整

54 个回复

倒序浏览
第四题  看着很简单 想了很久不知道到底是实现什么功能  有几道逻辑能力好强啊   
回复 使用道具 举报
第四题:
  1. package com.itheima.test;

  2. public class Test3 {
  3.         // 3、 写一个方法,此方法可将obj对象中名为propertyName的属性的值设置为value.
  4.         // public void setProperty(Object obj, String propertyName, Object value){
  5.         // }
  6.         public static void main(String[] args) {
  7.                 Obj obj = new Obj();
  8.                 setProperty(obj, "name", "NAME");
  9.                 setProperty(obj, "age", 22);
  10.                 System.out.println(obj.getName());
  11.                 System.out.println(obj.getAge());

  12.         }

  13.         public static void setProperty(Object obj, String propertyName, Object value) {
  14.                 //重构obj的propertyName的setter方法名
  15.                 propertyName = "set" + (propertyName.charAt(0) + "").toUpperCase() + propertyName.subSequence(1, propertyName.length());
  16.                 try {
  17.                          obj.getClass().getMethod(propertyName, value.getClass()).invoke(obj, value);
  18.                 } catch (Exception e) {
  19.                         e.printStackTrace();
  20.                 }
  21.         }

  22. }

  23. class Obj {
  24.         private String name;

  25.         private Integer age;

  26.         public String getName() {
  27.                 return name;
  28.         }

  29.         public void setName(String name) {
  30.                 this.name = name;
  31.         }

  32.         public Integer getAge() {
  33.                 return age;
  34.         }

  35.         public void setAge(Integer age) {
  36.                 this.age = age;
  37.         }
  38. }
复制代码


回复 使用道具 举报
哎 真心的 还得努力学啊 基础测试没看懂几个
回复 使用道具 举报
dsh 发表于 2014-10-4 16:13
第四题  看着很简单 想了很久不知道到底是实现什么功能  有几道逻辑能力好强啊    ...

把object看成是一个Map集合对象就行了
回复 使用道具 举报
比我的要难许多
回复 使用道具 举报
Eagle 高级黑马 2014-10-4 19:53:49
7#
真心没有全部看懂。。
回复 使用道具 举报
解冻 中级黑马 2014-10-4 19:58:30
8#
没几个能看懂的啊 要努力了
回复 使用道具 举报
哇。。。 貌似还有好多号多要学。。。
回复 使用道具 举报
dsh 中级黑马 2014-10-4 21:58:06
10#

意思是吧  obj中的属性更改一下   如果有两个对象  用反射没有多大意义  个人感觉反射就是动态的获取对象   创建一个未知的东西  增加程序的扩展性
回复 使用道具 举报
dsh 中级黑马 2014-10-4 22:04:11
11#

  //重构obj的propertyName的setter方法名

18.                propertyName = "set" + (propertyName.charAt(0) + "").toUpperCase() + propertyName.subSequence(1, propertyName.length());

19.                try {

20.                         obj.getClass().getMethod(propertyName, value.getClass()).invoke(obj, value);

主要是这没看懂
回复 使用道具 举报
难道第四题不可以这样写吗?还是我想的太天真了。
4、 写一个方法,此方法可将obj对象中名为propertyName的属性的值设置为value.   

public void setProperty(Object obj, String propertyName, Object value){   

          obj.propertyName = (String)value;
}
回复 使用道具 举报 1 0

题目没说该对象一定是javaBean对象,你这相当于强行加一个set方法上去了,虽然也行,但是我觉得应该直接用暴力反射获取所有成员变量,然后判断是否有该变量,如果有,直接用反射赋值就行.

点评

恩恩 说的在理, 我些的那种方式可能主要还是针对pojo对象用的,他们遵照了一些预定规则了。。。  发表于 2014-10-5 13:55
回复 使用道具 举报
比基础测试题目要难些,可以结合之前人的经验加上自己的理解写
回复 使用道具 举报
刚看完基础视频,对这些题目还是有点压力啊
回复 使用道具 举报
入学测试题,做起来有压力吧。
回复 使用道具 举报
确实有点难度。
回复 使用道具 举报
dsh 发表于 2014-10-4 22:04
//重构obj的propertyName的setter方法名

18.                propertyName = "set" + (propertyName. ...

18行是一个字符串操作的步骤,拿到pojo对象成员属性的setter方法
20行是拿到obj对象的对应setter方法做赋值操作了,因为你不能确定到底是那个Obj类的对象,所以在调用方法的时候 需要指定Obj类的某个实例
回复 使用道具 举报
本帖最后由 十万一千 于 2014-10-5 14:06 编辑
刘宣超 发表于 2014-10-4 22:22
难道第四题不可以这样写吗?还是我想的太天真了。
4、 写一个方法,此方法可将obj对象中名为propertyName的 ...

obj对象是Object类型,极有可能是没有propertyName的,况且propertyName 也有可能是private的
回复 使用道具 举报
入学测试能做几天。。。有时间限制?
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马