JAVA类与对象练习——对象调用编程例题之计算机与光盘
//CD.java
public class CD{
int size;
int[] content;
void setSize(int size){
this.size=size;
content=new int[size];
}
int getSize(){
return size;
}
void setContent(int[] a){
int min=Math.min(content.length,a.length);
for(int i=0;i<min;i++){
content[i]=a[i];
}
}
int[] getContent(){
return content;
}
}
//PC.java
import java.util.Scanner;
public class PC{
int[] data;
Scanner sc=new Scanner(System.in);
CD inCD=new CD();
void putCD(CD cd){
inCD=cd;
data=new int[cd.getSize()];
}
void copyToPC(CD cd){
for(int i=0;i<data.length;i++){
data[i]=cd.content[i];
}
}
void addData(CD cd){
System.out.println("Input the data you want to add:");
int add=sc.nextInt();
for(int i=0;i<data.length;i++){
data[i]=data[i]+add;
}
}
//注意形参的问题
void copyToCD(CD cd){
int min=Math.min(data.length,cd.content.length);
for(int i=0;i<min;i++){
cd.content[i]=data[i];
}
}
/*方法二
void copyToCD(){
inCD.setContent(data);
}
*/
void showData(){
for(int x:data){
System.out.printf(x+" ");
}
}
}
//USER.java
import java.util.Scanner;
public class USER{
public static void main(String args[]){
CD cd=new CD();
PC pc=new PC();
Scanner sc=new Scanner(System.in);
int[] a=new int[]{1,2,3,4,5,6,7,8,9};
System.out.println("Input the size of CD you want to format to write in:");
int size=sc.nextInt();
cd.setSize(size);
cd.setContent(a);
System.out.println("the content of CD:");
int[] b=cd.getContent();
for(int x:b){
System.out.printf(x+" ");
}
/*错误例子:
CD cd1=new CD();
int[] b=cd1.getContent();
for(int x:b){
System.out.printf(x+" ");
}
*/
/*方法1:使用cd.getContent()方法返回CD对象cd的content的数组值并用一个数组存储起来
方法2:直接使用cd.content[i]引用具体对象cd具体content数组值
for(int x:cd.content){
System.out.printf(x+" ");
}
*/
System.out.println();
OUTER:while(true){
System.out.println();
System.out.println("Enter Your Command:\n0.EXIT;\n1.COPY CD TO PC;\n2.COPY PC TO CD;\n3.SHOW CD;\n4.SHOW PC;\n5.ADD DATA;\n");
int choice=sc.nextInt();
switch(choice){
case 0:break OUTER;
case 1:pc.putCD(cd);
pc.copyToPC(cd);
break;
case 2:pc.copyToCD(cd);
//方法二 pc.copyToCD();
break;
case 3:for(int x:cd.content){
System.out.printf(x+" ");
}
break;
case 4:pc.showData();
break;
case 5:pc.addData(cd);
break;
default:
break;
}
}
}
}