顺便贴一下无聊的Java作业20151027

来源:互联网 发布:网络竞价排名 编辑:程序博客网 时间:2024/05/16 04:45

实验  

1、将对象作为参数传递给方法。

题目要求:

(1)定义一个Circle类,包含一个double型的radius属性代表圆的半径,一个findArea()方法返回圆的面积。

(2)定义一个类PassObject,在类中定义一个方法printAreas(),该方法的定义如下:

              public void printAreas(Cirlce c, int time)

在printAreas方法中打印输出1到time之间的每个整数半径值,以及对应的面积。例如,times为5,则输出半径1,2,3,4,5,以及对应的圆面积。

在main方法中调用printAreas()方法,调用完毕后输出当前半径值。


 

 
publicclassMain{
publicstaticvoid main(String[] args){
// TODO Auto-generated method stub
newPassObject().printAreas(newCircle(),5);
}
 
}
 
classCircle{
double radius;
double area;
 
publicdouble findArea(double radius){
this.radius = radius;
area =Math.PI * radius * radius;
return area;
}
}
 
classPassObject{
publicvoid printAreas(Circle c,int time){
System.out.println("Radius\tArea");
while(time >0)
System.out.println(time +"\t"+ c.findArea(time--));
}
}

实验  

1、实现单链表的各项功能。

题目要求:

(1)       定义一个Node类,包含一个整型的data,还包含一个Node类型的引用。如:

class Node{

       int data;

       Node next;

}

(2)       定义一个LinkedList类,其中有几个方法,

public Node creatLinkedList()  ///创建带头结点的单链表[单链表中的数据通过键盘输入的方式获得,请输入一组整数,以-1结束]

public void printList(Node h)  //遍历单链表

(3)并创建相关对象进行测试各个功能

publicclassMain{
 
publicstaticvoid main(String[] args){
// TODO Auto-generated method stub
LinkedList l=newLinkedList();
Node n=l.creatLinkedList();
l.printList(n);
}
}
 
classLinkedList{
publicNode creatLinkedList(){
Node head =newNode(0);
Node t =null;
t = head;
System.out.println("输入:");
Scanner sc =newScanner(System.in);
int a = sc.nextInt();
do{
Node tail =newNode();
tail.data = a;
tail.next =null;
head.next = tail;
head = tail;
}while(sc.hasNext()&&(a = sc.nextInt())!=-1);
sc.close();
return t;
}
publicvoid printList(Node h){
h = h.next;
while(h !=null){
System.out.print(h.data +" ");
h = h.next;
}
System.out.println();
}
}
classNode{
int data;
Node next;
 
publicNode(int data){
this.data = data;
next =null;
}
 
publicNode(){
}
}

实验3 【以下红色字体的内容不用实现它,也不用管它,等下次课讲完以后,你们再在这个程序上改】

1、写一个名为Account的类模拟账户。该类的属性和方法如下图所示。该类包括的属性:账号id,余额balance,年利率annualInterestRate;包含的方法:访问器方法(getter和setter方法),取款方法withdraw(),存款方法deposit()。

Account

private int id                //银行帐号

private double balance        //帐号余额

private double annualInterestRate  //年利率

public Account (int id, double balance, double annualInterestRate )

public int getId()            //获得用户帐号

public double getBalance()   //获得用户帐号余额

public double getAnnualInterestRate()   //获得年利率

public void setId( int id)              //设置用户帐号

public void setBalance(double balance)  //设置用户帐号余额

public void setAnnualInterestRate(double annualInterestRate) //设置年利率

public void withdraw (double amount)   //取钱

public void deposit (double amount)    //存钱

 

提示:在提款方法withdraw中,需要判断用户余额是否能够满足提款数额的要求,如果不能,应给出提示。

 

2. 创建Customer类。

Customer

private String firstName           //用户的名

private String lastName           //用户的姓

private Account account          //用户的银行帐户

public Customer(String f,String l)

public String getFirstName()      //获得用户的名

public String getLastName()       //获得用户的姓

public Account getAccount()      //获得用户的帐户

public void setAccount(Account account)   //设置用户的帐户

 

a. 声明三个私有对象属性:firstName、lastName和account。

b. 声明一个公有构造器,这个构造器带有两个代表对象属性的参数(fl

c. 声明两个公有存取器来访问该对象属性,方法getFirstName和getLastName返回相应的属性。

d. 声明setAccount 方法来对account属性赋值。

e. 声明getAccount 方法以获取account属性。

 

3.写一个测试程序。

(1)       创建一个Customer ,名字叫 Jane Smith, 他有一个账号为1000,余额为2000元,年利率为 1.23% 的账户。

(2)       对Jane Smith操作。

存入 100 元,再取出960元。再取出2000元。

打印出Jane Smith 的基本信息

结果如下:

成功存入 100.0

成功取出:960.0

余额不足,取款失败

Customer [Smith, Jane] has a account: id is 1000, annualInterestRate is 1.23, balance is 1140.0

publicclassMain{
 
publicstaticvoid main(String[] args){
// TODO Auto-generated method stub
Customer c =newCustomer("Jane","Smith");
Account ac =newAccount(1000,2000,1.23);
c.setAccount(ac);
ac.deposit(100);// 存入100
ac.withdraw(960);// 取出960
ac.withdraw(2000);// 取出2000
System.out.println("Customer ["+ c.getFirstName()+","
+ c.getLastName()+"] has a account: id is "+ ac.getId()
+", annualInterestRate is "+ ac.getAnnualInterestRate()
+"%, balance is "+ ac.getBalance());
}
 
}
 
classAccount{
privateint id;// 银行帐号
privatedouble balance;// 帐号余额
privatedouble annualInterestRate;// 年利率
 
publicAccount(int id,double balance,double annualInterestRate){
this.id = id;
this.balance = balance;
this.annualInterestRate = annualInterestRate;
}
 
publicint getId(){
return id;
}
 
publicvoid setId(int id){
this.id = id;
}
 
publicdouble getBalance(){
return balance;
}
 
publicvoid setBalance(double balance){
this.balance = balance;
}
 
publicdouble getAnnualInterestRate(){
return annualInterestRate;
}
 
publicvoid setAnnualInterestRate(double annualInterestRate){
this.annualInterestRate = annualInterestRate;
}
 
// 取钱
publicvoid withdraw(double amount){
if(amount >0){
if(amount <= balance){
balance -= amount;
System.out.println("成功取出:"+ amount);
}else
System.out.println("余额不足,取款失败");
}else
System.out.println("非法操作");
}
 
// 存钱
publicvoid deposit(double amount){
if(amount >0){
balance += amount;
System.out.println("成功存入:"+ amount);
}else
System.out.println("非法操作");
}
}
 
classCustomer{
privateString firstName;// 用户的名
privateString lastName;// 用户的姓
privateAccount account;// 用户的银行帐户
 
publicCustomer(String f,String l){
firstName = f;
lastName = l;
}
 
publicAccount getAccount(){
return account;
}
 
publicvoid setAccount(Account account){
this.account = account;
}
 
publicString getFirstName(){
return firstName;
}
 
publicString getLastName(){
return lastName;
}
 
}
1.创建程序,在其中定义两个类:Person和TestPerson类。定义如下:
    用setAge()设置人的合法年龄(0~130),用getAge()返回人的年龄。在TestPerson类中实例化Person类的对象b,调用setAge()和getAge()方法,体会Java的封装性。
 1. 在前面定义的Person类中添加构造器,利用构造器设置所有人的age属性初始值都为18。
 
2. 修改上题中类和构造器,增加name属性,使得每次创建Person对象的同时初始化对象的age属性值和name属性值。
publicclassTestPerson{
 
publicstaticvoid main(String[] args){
// TODO Auto-generated method stub
Person p =newPerson(18,"Kevin");
p.setAge(13);
System.out.println(p.getAge());
}
 
}
 
classPerson{
int age;
String name;
 
publicPerson(int age,String name){
this.age = age;
this.name = name;
}
 
publicint getAge(){
return age;
}
 
publicString getName(){
return name;
}
 
publicvoid setName(String name){
this.name = name;
}
 
publicvoid setAge(int age){
this.age = age;
}
}
(1)定义Person类,有4个属性:String name; int age; String school; 
      String major
(2)定义Person类的3个构造方法:
第一个构造方法Person(String n, int a)设置类的name和age属性;
第二个构造方法Person(String n, int a, String s)设置类的name, age 和school属性;
第三个构造方法Person(String n, int a, String s, String m)设置类的name, age ,school和major属性;
(3)在main方法中分别调用不同的构造方法创建的对象,并输出其属性值。
publicclassMain{
 
publicstaticvoid main(String[] args){
// TODO Auto-generated method stub
Person p =newPerson("A",18);
System.out.println(p.name + p.age);
}
 
}
 
classPerson{
String name;
int age;
String school;
String major;
 
publicPerson(String n,int a){
name = n;
age = a;
}
 
publicPerson(String n,int a,String s){
name = n;
age = a;
school = s;
}
 
publicPerson(String n,int a,String s,String m){
name = n;
age = a;
school = s;
major = m;
 
}
}
3.定义一个“点”(Point)类用来表示三维空间中的点(有三个坐标)。要求如下:
    1)可以生成具有特定坐标的点对象。
    2)提供可以设置三个坐标的方法。
    3)提供可以计算该“点”距原点距离平方的方法。
4.编写两个类,TriAngle和TestTriAngle,其中TriAngle中声明私有的底边长base和高height,同时声明公共方法访问私有变量;另一个类中使用这些公共方法,计算三角形的面积。
publicclassMain{
 
publicstaticvoid main(String[] args){
// TODO Auto-generated method stub
Person p =newPerson("A",18);
System.out.println(p.name + p.age);
}
 
}
 
classPerson{
String name;
int age;
String school;
String major;
 
publicPerson(String n,int a){
name = n;
age = a;
}
 
publicPerson(String n,int a,String s){
name = n;
age = a;
school = s;
}
 
publicPerson(String n,int a,String s,String m){
name = n;
age = a;
school = s;
major = m;
 
}
}
添加必要的构造器,综合应用构造器的重载,this关键字。

Girl

-name:String

+setName(i: String)

+getName(): String

+marry(boy:Boy)

Boy

-name:String

-age:int

+setName(i: String)

+getName(): String

+setAge(i: int)

+getAge(): int

+marry(girl:Girl)

+shout():void

publicclassMain{
 
publicstaticvoid main(String[] args){
// TODO Auto-generated method stub
}
 
}
 
classBoy{
String name;
int age;
 
publicBoy(String name,int age){
this.name = name;
this.age = age;
}
 
publicString getName(){
return name;
}
 
publicvoid setName(String name){
this.name = name;
}
 
publicint getAge(){
return age;
}
 
publicvoid setAge(int age){
this.age = age;
}
 
publicvoid marry(Girl girl){
 
}
}
 
classGirl{
String name;
 
publicGirl(String name){
this.name = name;
}
 
publicString getName(){
return name;
}
 
publicvoid setName(String name){
this.name = name;
}
 
publicvoid marry(Boy boy){
 
}
 
publicvoid shout(){
 
}
}

   
0 0
原创粉丝点击