《实验2(01) 类与对象1-必做》由会员分享,可在线阅读,更多相关《实验2(01) 类与对象1-必做(5页珍藏版)》请在金锄头文库上搜索。
1、班级: 姓名: 学号: 成绩 面向对象编程基础面向对象编程基础(一一)简单的类和对象简单的类和对象实验目的: 1.掌握类的定义,熟悉属性、构造函数、方法的作用,掌握用类作为类型声明变量和方法返回值; 2.理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例 的方法和属性; 实验数据记录及分析(或程序及运行结果)1.写一个名为 Rectangle 的类表示矩形。其属性包括宽 width、高 height 和 颜色 color,width 和 height 都是 double 型的,而 color 则是 String 类型 的。要求该类具有: (1) 合理的构造函数,完成各属性的初始赋值
2、 (2) 使用 get 和 set 的形式完成各个属性的访问及修改 (3) 计算面积的 getArea()方法 (4) 合理的 toString 方法。 主函数如下: public static void main(String args) System.out.println(“创建一个默认初值的矩形:“); Rectangle r=new Rectangle(); System.out.println(“t“+r);System.out.println(“修改具有默认初值矩形的宽为10,高为20:“); r.setWidth(10); r.setHeight(20); System.out
3、.println(“t“+r);System.out.println(“创建一个边长为1的正方形:“); r=new Rectangle(1); System.out.println(“t“+r); 2.一副牌 Deck 有 52 张扑克 Card 组成(不含王牌),每张牌有自己的牌型 suit(用 char 类型)和点数 rank(用 String 类型) ,补充完整下面的类 的定义。 public class Card public Card( ) this.suit = suit;this.rank = rank;public String toString() return suit+
4、rank;public static void main(String args)Card c=new Card(H,“10“);System.out.println(c);3.程序运行后的输出是什么? class TestReference public static void main(String args) int x=2; TestReference tr = new TestReference(); System.out.print(x); tr.change(x); System.out.print(x); public void change(int num) num = nu
5、m + 1; 4.写出程序运行结果public class Foo public static void main (String args) StringBuffer a = new StringBuffer (“A”); StringBuffer b = new StringBuffer (“B”); operate(a,b);/调用了Foo类的一个类方法System.out.printIn(a + “,” +b); static void operate (StringBuffer x, StringBuffer y) x.append(y); y = x; 5.解释下面的程序运行结果输
6、出为什么是 nullpublic class My String s;public void My()s = “Constructor“;public void go() System.out.println(s);public static void main(String args) My m = new My();m.go();6.给出下面的类,找出后面的给出下面的类,找出后面的 5 个声明中,哪些是重载后的构造函数个声明中,哪些是重载后的构造函数 public class ConstOver public ConstOver (int x, int y, int z) A. Const
7、Over ( ) B. Protected int ConstOver ( ) C. Private ConstOver (int z, int y, byte x) D. Public Object ConstOver (int x, int y, int z) E. Public void ConstOver (byte x, byte y, byte z) 7.给出下面的类,找出后面的给出下面的类,找出后面的 5 个声明中,哪些是重载后的个声明中,哪些是重载后的 setVar 函数函数 public class MethodOver public void setVar (int a,
8、int b, float c) A. Private void setVar (int a, float c, int b) B. Protected void setVar (int a, int b, float c) C. Public int setVar (int a, float c, int b) return a; D. Public int setVar (int a, int b, float d) return a; E. Protected float setVar (int a, int b, float c) return c;8.下列程序有错误,调试、写出错误原因
9、并改正。public class VariableScope public static void main(String args) int i=10;int k=10; System.out.println(“i=“+i);System.out.println(“k=“+k); System.out.println(“i=“+i); System.out.println(“k=“+k); 9.输入下面的类,结合题 2 中的 Card 类,完成下面的要求 public class JLab1201 static final char suits =H,S,D,C; static final
10、String ranks =“A“,“2“,“3“,“4“,“5“,“6“,“7“,“8“,“9“,“10“,“J“,“Q“,“K“; static Card cards=new Card52; /* 初始化扑克牌数组*/ public static void init() for(int i=0;isuits.length;i+) for(int j=0;jranks.length;j+) cardsi*ranks.length+j=new Card(suitsi,ranksj); public static void swap1(Card c1,Card c2) Card c=c1; c1
11、=c2; c2=c; public static void swap1(int i,int j) Card c=cardsi; cardsi=cardsj; cardsj=c; public static void swap2(Card c1,Card c2) char s=c1.suit; c1.suit=c2.suit; c2.suit=s; String r=c1.rank; c1.rank=c2.rank; c2.rank=r; /* param args*/ public static void main(final String args) init();/任取两张牌 Card c
12、1=cards10; Card c2=cards12; System.out.println(“第 11 张牌是:“+c1+“t 第 13 张牌是:“+c2); 1)在 main 方法中,添加下面几行语句,写出并分析结果 swap1(c1,c2); System.out.println(“执行 swap1(c1,c2)后“); System.out.println(“c1 引用的牌是:“+c1+“tc2 引用的牌是:“+c2); System.out.println(“第 11 张牌是:“+cards10+“t 第 13 张牌是:“+cards12); 2)在 main 方法中,去掉刚才添加的
13、语句,添加下面几行语句,写出并分 析结果 swap1(10,12); System.out.println(“执行 swap1(10,12)后“); System.out.println(“c1 引用的牌是:“+c1+“tc2 引用的牌是:“+c2); System.out.println(“第 11 张牌是:“+cards10+“t 第 13 张牌是:“+cards12); 3)在 main 方法中,去掉刚才添加的语句,添加下面几行语句,写出并分 析结果 swap2(c1,c2); System.out.println(“执行 swap2(c1,c2)后“); System.out.prin
14、tln(“c1 引用的牌是:“+c1+“tc2 引用的牌是:“+c2); System.out.println(“第 11 张牌是:“+cards10+“t 第 13 张牌是:“+cards12);10. 银行的账户记录 Account 有账户的唯一性标识(11 个长度的字符和数 字的组合) ,用户的姓名,开户日期(Date),账户密码(六位的数字,可 以用 0 开头) ,当前的余额。银行规定新开一个账户时,银行方面提供 一个标识符、账户初始密码 123456,客户提供姓名,开户时客户可以 直接存入一笔初始账户金额,不提供时初始余额为 0。定义该类,并要 求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标 识、姓名、开户日期、当前余额等信息。