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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 田磊阳   /  2013-3-29 20:35  /  16609 人查看  /  218 人回复  /   3 人收藏 转载请遵从CC协议 禁止商业使用本文

看看飞到哪了.......
回复 举报
这个,真的需要抢么??
回复 举报
本帖最后由 、__WSD吴少东 于 2013-4-8 17:57 编辑

小程序标题:继承关系小程序
小程序题目: 编写一个类Person,为Person类定义年龄、姓名两个属性,并且定义一个SayHello方法,方法执行时输出“我是***我的年龄是***”;
定义一个Chinese类从Person类继承。
上一题楼层及时间:无
上一题推荐的答案:无
本题目楼层及时间:第183楼 时间为:2013年4月8日
/*
需求:
8、 编写一个类Person,为Person类定义年龄、姓名两个属性,
并且定义一个SayHello方法,方法执行时输出“我是***我的年龄是***”;
定义一个Chinese类从Person类继承。

*/
/*
思路:
1. 需要编写两个类,Person和Chinese
2. Person里有两个属性和一个方法
3. Chinese里需要两个属性外还有个国籍属性是共有的,所以业需要列出来
4. 测试两个类是否能够执行

步骤:
1. 建立Person 类,定义属性name 和 age 并且定义SayHello方法
2. 建立Chinese 类。并继承Person。 定义属性 GUO_JI
3. 编写Test8,测试是否能够通过编译。
*/
class Person
{
        private String name;//定义变量
        private int age;

        Person(String name,int age)//定义构造函数,当未定义构造函数时,
                                                                //系统默认有一个没有接收值得构造函数。
        {
                this.name = name;//this   谁调用该构造函数,this就代表谁
                this.age = age;
        }
        public void SayHello() //定义方法。
        {
                System.out.println("我是"+this.name+"我的年龄是"+this.age+"岁。");
        }
}
class Chinese extends Person
{
        private  String GUO_JI = "CN";
        Chinese(String name,int age)//定义构造函数,
        {
                super(name,age);//将信息传送给父系,由父系赋值。
        }
}

class  Test8 //测试该程序是否能运行
{
        public static void main(String[] args)
        {
                Chinese fbb = new Chinese("范冰冰",49);
                fbb.SayHello();//对象已经建立,可以直接通过对象.函数名来调用,
        }
}
一个小题目,刚学,就能写成这样了。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 举报
话说现在楼层,还有奖励没了...
回复 举报
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.Arrays;


public class test2 {

        /**
         * @param args
         */
        /*周三老师叫我们用汇编语言写一段密码验证程序:
         *   请 输入密码,最多输入三次若第一次输入错误
         *   则在进行输入,直到输入正确。若其中有一次
         *   输入正确,则输出"welcome you !";若三次都输入
         *   错误则输出"error!"
         */
        static int count = 0;
        public static void main(String[] args) {
       
                int[] pw = new int[]{1,2,4};  //assume password is 1 and 2,4;
               
                boolean flag = true;
                while(count <3 && flag)
                        flag= result(pw);
       
                if(flag)
                        System.out.println("error!");
                else
                        System.out.println("Welcome you !");
       
        }

        private static boolean result(int pw[]) {
                BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                System.out.print("请输入密码:");
                boolean flag = true;
                String password1 = null;
                try {
                        password1 = br.readLine();
                } catch (IOException e) {
                        e.printStackTrace();
                }
                int password[]  = new int[password1.length()];
                //讲字符串转化为数字存储在pssword数组中
                for(int i = 0; i < password1.length(); i++) {
                        password[i] = password1.charAt(i) - '0';  //必须减去32.负责得到的是asc码
                }
                //验证密码是否相等
                //System.out.println(Arrays.toString(password));
                for(int i = 0; i < password.length; i++) {
                        if(!(password[i] != pw[i])) {
                                flag = false;
                        }
                        break;
                }
                count++;
                return flag;   //error return ture ,else return false
        }

}

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 举报
我的···················
回复 举报
33 我的········哈哈!
回复 举报
、__WSD吴少东 发表于 2013-4-8 22:08
话说现在楼层,还有奖励没了...

抢楼的奖励没了,但是你可以出题答题,奖励更丰厚哦
回复 举报
黄玉昆 发表于 2013-4-9 11:30
抢楼的奖励没了,但是你可以出题答题,奖励更丰厚哦

无所谓·!! 我也刚也是看到楼上那位说33是我的才多回两个帖子的。发完后觉得很没劲···怎么回满足内心的虚荣感···还有,为什么不是田兄给分我啊!!!

点评

哈哈,谁给都一样的,要不要再奖励你一分呀····  发表于 2013-4-10 09:13
回复 举报
黄玉昆 发表于 2013-4-9 11:30
抢楼的奖励没了,但是你可以出题答题,奖励更丰厚哦

无所谓·!! 我也刚也是看到楼上那位说33是我的才多回两个帖子的。发完后觉得很没劲···怎么回满足内心的虚荣感···还有,为什么不是田兄给分我啊!!!

点评

这个谁给分不重要,都是我们版主的职责的  发表于 2013-4-9 12:49
回复 举报
本帖最后由 丘凤光 于 2013-4-9 16:50 编辑
、__WSD吴少东 发表于 2013-4-8 17:54
小程序标题:继承关系小程序
小程序题目: 编写一个类Person,为Person类定义年龄、姓名两个属性,并且定义 ...

出题者楼层及时间:第183楼,时间为:2013年4月8日
小程序题目:编写一个类Person,为Person类定义年龄、姓名两个属性,并且定义一个SayHello方法,方法执行时输出“我是***我的年龄是***”;
定义一个Chinese类从Person类继承。
小程序思路:出题者的答案已经很好,但是毕向东老师说过,类的对象经常要存入集合,在集合中操作,而存入HashSet集合、TreeSet集合不确定。所以,描述一个类一般要复写Object类的hashCode方法、equals方法,实现Comparable接口复写其CompareTo方法。
小程序答案:
  1. /*
  2. 需求:
  3. 编写一个Person类,定义年龄、姓名两个属性,并且定义一个SayHello方法,
  4. 方法执行时输出“我是***我的年龄是***”;定义一个Chinese类从Person类继承。

  5. 思路:
  6. 1. 需要编写两个类,Person和Chinese
  7. 2. Person里有两个属性和一个方法
  8. 3. Chinese类有非共性的国籍属性
  9. 4. 在父类复写Object的hashcode、equals方法,实现Comparable接口复写compareTo方法
  10. 5、子承父类,子类也具有了比较性

  11. */
  12. class Person implements Comparable<Person>
  13. {
  14.         private String name;
  15.         private int age;

  16.         Person(String name,int age)//构造函数初始化Person对象
  17.         {
  18.                         this.name = name;
  19.                         this.age = age;
  20.         }
  21.         public void SayHello()
  22.         {
  23.                         System.out.println("我是"+this.name+"我的年龄是"+this.age+"岁。");
  24.         }
  25.         public int hashCode()        //复写hashCode方法
  26.         {
  27.                 return name.hashCode()+age*2;        //这里可以任意写,只要和name、age有关且不超限
  28.         }
  29.         public boolean equals(Object obj)        //复写equals方法
  30.         {
  31.                 if(!(obj instanceof Person))
  32.                         throw new ClassCastException("传入的不是Person类对象");
  33.                 Person p=(person)obj;
  34.                 return this.name.equals(p.name)&&this.age==p.age;
  35.         }
  36.         public int CompareTo(Person p)        //复写Comparable接口的CompareTo方法
  37.         {
  38.                 int i=this.name.compareTo(p.name);
  39.                 if(i==0)
  40.                         return new Integer(this.age).compareTo(p.age);
  41.                 return i;
  42.         }
  43. }
  44. class Chinese extends Person
  45. {
  46.         private  String GUO_JI = "中国";
  47.         Chinese(String name,int age,String guoJi)//定义构造函数,
  48.         {
  49.                 if(guoJi!=GUO_JI)
  50.                         throw new RuntimeException("所描述的这个人不是中国人");//判断传入的符不符合Chinese类
  51.                         super(name,age);
  52.         }
  53. }

  54. class  ClassDemo //使用Chinese类
  55. {
  56.         public static void main(String[] args)
  57.         {
  58.                         Chinese zxc = new Chinese("周星驰",55,"中国");
  59.                         zxc.SayHello();
  60.         }
  61.         /*
  62.         与集合有关的操作
  63.         */
  64. }
复制代码
————

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 举报
支持~  果断支持~~  大力支持~~~
回复 举报
丘凤光 发表于 2013-4-9 14:52
出题者楼层及时间:第183楼,时间为:2013年4月8日
小程序题目:编写一个类Person,为Person类定义年龄、 ...

比我的好多了,大概能看懂。我会继续努力的。
回复 举报
黄玉昆 发表于 2013-4-9 11:30
抢楼的奖励没了,但是你可以出题答题,奖励更丰厚哦

Soga...明白了,
回复 举报
嚎嚎,过来看看
回复 举报
小程序标题:计算有效上课天数
小程序题目:计算有效上课天数,每周六日不上课,计算任意年从九月到十月的有效上课天数
上一题楼层及时间:第177楼,时间为:2013年4月7日
上一题推荐的答案:无
本题目楼层及时间:第196楼 时间为:2013年4月9日

小程序答案:
在这里给出一个参考:
思路:
        1、先计算出给定月份的天数
        2、再通过遍历天数,用计数器计算非周六日的天数
  1. public static int getValDay(int year,int startMON,int endMON)  
  2.     {  
  3.         //获取时间信息  
  4.         Calendar c = Calendar.getInstance();  
  5.         //调用获取天数函数  
  6.         int day = getDay(c,year,startMON,endMON);  
  7.         sop("总天数:" + day);//测试获取的天数  
  8.         //初始化星期  
  9.         int week = 0;  
  10.         //定义计数器  
  11.         int count = 0;  
  12.         //遍历每天一天,判断是否为周六日,f否的话计数器自增  
  13.         for(int i=0;i<day;i++)  
  14.         {  
  15.             //必须要先将天数加1再判断,否则到week为6的时候会一直continue,  
  16.             //而且此处也可以避免下面的week是以星期日为第一天的问题  
  17.             c.add(Calendar.DAY_OF_MONTH,1);  
  18.             //获取当前天数的星期  
  19.             week = c.get(Calendar.DAY_OF_WEEK);  
  20.             sop("星期:" + week);  
  21.             if (week==6 || week==7)  
  22.                 continue;  
  23.             count++;  
  24.             sop("有效天数:" + count);  
  25.         }  
  26.         return count;  
  27.     }  
  28.     //获取给定月份的天数  
  29.     public static int getDay(Calendar c,int year,int startMON,int endMON)  
  30.     {  
  31.         //定义天数和变量  
  32.         int sum = 0;  
  33.         //遍历每个月的天数  
  34.         for(int i=0;i<=endMON-startMON;i++)  
  35.         {  
  36.             //设定第二个月的第一天,循环一次后设定下个月为处世月,因为0为一月份所以startMON要加1  
  37.             c.set(year,startMON+i,1);  
  38.             //获取前一个月的天数  
  39.             c.add(Calendar.DAY_OF_MONTH,-1);  
  40.             //将每个月的天数累加  
  41.             sum += c.get(Calendar.DAY_OF_MONTH);  
  42.             //循环后,要相应加上i个月  
  43.             c.add(Calendar.MONTH,i+1);  
  44.         }  
  45.         return sum;  
  46.     }  
  47. }  
复制代码

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 举报
  1. package cn.itheima;

  2. import java.io.UnsupportedEncodingException;
  3. import java.util.Scanner;

  4. public class Test10 {

  5.         /** 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
  6.          *  但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,
  7.          *  应该输出为“我ABC”而不是“我ABC+汉的半个”。

  8.          * @param args
  9.          * @throws UnsupportedEncodingException
  10.          */
  11.         /**
  12.          * 思路:1.先将输入的字符串转换成字符数组,然后遍历字符数组
  13.          *                 2.遍历的同时记录字节数,如果字节数小于要求的字节数就加入到预先定义的字符串中
  14.          *                 3.遍历结束后输出字符串
  15.          */
  16.         public static void main(String[] args) throws UnsupportedEncodingException {
  17.                
  18.                 String str;//记录用户输入字符串
  19.                
  20.                 int count;//记录用户输入的截取字节数
  21.                
  22.                 StringBuffer newstr = new StringBuffer();//定义结果字符串
  23.                
  24.                 int index=0;//用于记录遍历时字节的长度
  25.                 //获取用户输入信息
  26.                 Scanner scan = new Scanner(System.in);
  27.                 System.out.println("请输入一个字符串:");
  28.                 str = scan.nextLine();
  29.                 System.out.println("请输入截取的字节数:");
  30.                 count = scan.nextInt();
  31.                
  32.                 char [] strChars = str.toCharArray();
  33.                 for(char ch : strChars){
  34.                         String s = "";
  35.                         s = s.valueOf(ch);
  36.                         int i = s.getBytes().length;//记录每个字符的字节数
  37.                         index =index + i;//这里需要先进行计数,在进行判断
  38.                         //如果记录数小于或是等于要求的字节数,就将字符累加
  39.                         if(index<=count){
  40.                                 newstr.append(s);
  41.                                
  42.                         }
  43.                 }
  44.                
  45.                 System.out.println("新字符串为:"+newstr);

  46.         }

  47. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 举报
本帖最后由 、__WSD吴少东 于 2013-4-10 00:08 编辑

小程序标题:继承关系小程序
小程序题目: 有这样三个类,Person,Student.GoodStudent。
其中Student继承了Person,GoodStudent继承了Student,
三个类中只有默认的构造函数,用什么样的方法证明
在创建Student类的对象的时候是否调用了Person的构造函数,
在创建GoodStudent类的对象的时候是否调用了Student构造函数?
上一题楼层及时间:第183楼,4月八号
上一题推荐的答案:第191楼
本题目楼层及时间:第198楼 时间为:2013年4月10日
呃。我想了老半天,也不知道到底应该从哪里下手,感觉就像是一只老虎对着一只刺猬。心里痒死了。求指教。顺便说下思路,让我以后碰到了能解决类似的问题。
小生在此先行谢过!
回复 举报
、__WSD吴少东 发表于 2013-4-10 00:07
小程序标题:继承关系小程序
小程序题目: 有这样三个类,Person,Student.GoodStudent。
其中Student继承 ...

子类继承父类,如果子类里边什么都没有,新建对象中有一个隐式函数
super();
可是父类中也没有东西,这个要怎么证明调用了?
回复 举报
冯超 发表于 2013-4-9 11:34
无所谓·!! 我也刚也是看到楼上那位说33是我的才多回两个帖子的。发完后觉得很没劲···怎么回满足内 ...

不需要了·谢谢 呵呵
回复 举报
您需要登录后才可以回帖 登录 | 加入黑马