1.编写一个Java应用程序,该程序有2个类:Vehicle(机动车)和User(主类)。

Vehicle类的成员变量有:speed(速度)、power(功率)。成员方法有:speedUp(int s)—加速,speedDown(int d)—减速,setPower(int p)—设置功率,getPower()—获取功率

Vehicle.java 

public class Vehicle{
	double speed;
	int power;
    
    void speedUp(int s)
    {
    	speed=speed+s;
    }
    void speedDown(int d)
    {
    	speed=speed-d;
    }
    void setPower(int p)
    {
    	power=p;
    }
    int getPower()
    {
    	return power;
    }
    double getSpeed()
    {
        return speed;
    }
}
 

User.java

public class User {
    public static void main(String args[]){
        Vehicle car1,car2;
        car1=new Vehicle();
        car2=new Vehicle();
        car1.setPower(128);
        car2.setPower(76);
        System.out.printf("car1的功率是:%d\n", car1.getPower());
        System.out.printf("car2的功率是:%d\n", car2.getPower());
        car1.speedUp(80);
        car2.speedUp(80);
        System.out.printf("car1目前的速度:%f\n", car1.getSpeed());
        System.out.printf("car2目前的速度:%f\n", car2.getSpeed());
        car1.speedDown(10);
        car2.speedDown(20);
        System.out.printf("car1目前的速度:%f\n", car1.getSpeed());
        System.out.printf("car2目前的速度:%f\n", car2.getSpeed());
    }
}

2.根据下面要求,编写一个Java应用程序:

①定义类StuCard,用到类成员变量(人数)和实例成员变量:学号、姓名、性别、专业、年级、籍贯等;

②初始化的时候用到构造方法,提供两个以上构造方法;

③多个类(业务类StuCard和测试主类),用到包的概念,且分别放到不同的包中;

④用到类成员访问权限,要求类成员变量为Public,实例成员变量为Private;

⑤编写所有数据成员的访问器和修改器(共有的get和set方法);

⑥在主类中实现对业务类StuCard的读、写、修改属性等功能。

在完成以上功能要求的情况下,可以进一步扩展。

package major;
import stucard.StuCard;

public class major {
	public static void main(String arg[]){
		String index;
		StuCard stu = new StuCard();
		stu.set_index("45");
		index=stu.get_index();
		System.out.println(index);
	}

}
package stucard;
public class StuCard {
	public static int number ;//类变量 ,所有对象共享
	private String index ;//实例变量 ,对象独有
	private String name ;
	private String gender ;
	private String major ;
	private String grade ;
	private String place ;
	
	public int get_number(){
		return this.number;
	};
	public String get_name(){
		return this.name;
	};
	public String get_index(){
		return this.index;
	};
	public String get_gender(){
		return this.gender;
	};
	public String get_major(){
		return this.major;
	};
	public String get_grade(){
		return this.grade;
	};
	public String get_place(){
		return this.place;
	};

	public void set_number(int x){
		this.number=x;
	};
	public void set_name(String x){
		this.name=x;
	};
	public void set_index(String x){
		this.index=x;
	};
	public void set_gender(String x){
		this.gender=x;
	};
	public void set_major(String x){
		this.major=x;
	};
	public void set_grade(String x){
		this.grade=x;
	};
	public void set_place(String x){
		this.place=x;
	};
	public StuCard(){
		number=0;
	}
	public StuCard(String x){
		gender="0";
	}
	
}

3.用类描述计算机中CPU的速度和硬盘的容量。要求Java应用程序有4个类,名字分别是PCCPUHardDiskTest,其中Test是主类。

PC类与CPU和HardDisk类关联的UML图如下:

其中,CPU类要求getSpeed()返回speed的值,要求setSpeed(int m)方法将参数m的值赋值给speed。HardDisk类要求getAmount()返回amount的值,要求setAmount(int m)方法将参数m的值赋值给amount。PC类要求setCPU(CPU c)将参数c的值赋值给cpu,要求setHardDisk(HardDisk h)方法将参数h的值赋值给HD,要求show()方法能显示cpu的速度和硬盘的容量。

主类Test的要求:

(1) main方法中创建一个CPU对象cpu,cpu将自己的speed设置为2200;

(2) main方法中创建一个HardDisk对象disk,disk将自己的amount设置为200;

(3) main方法中创建一个PC对象pc;

(4) pc调用setCPU(CPU c)方法,调用时实参是cpu;

(5) pc调用setHardDisk(HardDisk h)方法,调用时实参是disk;

(6) pc调用show()方法。

 

 

public class Test {
	public static void main(String arg[]){
		CPU cpu=new CPU();
		cpu.setSpeed(2200);
		HardDisk disk=new HardDisk();
		disk.setAmount(200);
		PC pc=new PC();
		pc.setCPU(cpu);
		pc.setHardDisk(disk);
		pc.show();
		
	}

}
class PC{
	CPU cpu;
	HardDisk HD;
	void setCPU(CPU x){
		cpu=x;
	}
	void setHardDisk(HardDisk x){
		HD=x;
	}
	void show(){
		System.out.println(cpu.speed+HD.amount);
	}
}
class HardDisk{
	int amount;
	void setAmount(int x){
		amount=x;
	}
	int getAmount(){
		return amount;
	}
}
class CPU{
	int speed;
	void setSpeed(int x){
		speed=x;
	};
	int getSpeed(){
		return speed;
	};
}

4.共饮同井水:编写程序模拟两个村庄公用同一口井水。编写一个Village类,该类有一个静态的成员变量waterAmount,用于模拟井水的水量;实例变量peopleNumber表示村庄的人数,实例变量name表示村庄的名称。定义相应的成员方法操作成员变量。在主类Land的main()方法中创建两个村庄,设置村庄的名称、人数,通过一个村庄改变waterAmount的值,另一个村庄查看该值的结果。

提示:类变量是该类所有对象的共享数据;一般通过类方法操作类变量。

public class Land {
	public static void main(String arg[]){
		Village v1=new Village();
		Village v2=new Village();
		v1.name="village11";
		v1.peopleNumber=11;
		v2.name="village22";
		v2.peopleNumber=22;
		v1.waterAmount=8899;
		System.out.println(v2.waterAmount);
	}
}

class Village {
	static int waterAmount;
	int peopleNumber;
	String name;
}

5.正n边形:在一个正n边形中,所有边的长度都相同,且所有角的度数都相同(即这个多边形是等边等角的)。设计一个名为RegularPolygon的类,该类包括:

①一个名为n的int型私有数据成员表示多边形的边数;

②一个名为side的double型私有数据成员表示多边形的长度;

③一个名为x的double型私有数据成员表示多边形中点的x坐标;

④一个名为y的double型私有数据成员表示多边形中点的y坐标;

⑤一个创建带默认值(n的默认值为3,side的默认值为1,x的默认值为0,y的默认值为0)的正多边形的无参构造方法;

⑥一个能创建带指定边数和边长度,中心在(0,0)的正多边形的构造方法;

⑦一个能创建带指定边数和边长度,中心在(x,y)的正多边形的构造方法;

⑧所有数据成员的访问器和修改器(共有的get和set方法);

⑨一个返回多边形周长的方法getPerimeter();

⑩一个返回多边形面积的方法getArea(),计算正多边形面积的公式是:

S = (n * side *side)/(4 * tan(π/n))

编写一个测试程序,分别使用无参构造方法、RegularPolygon(6, 4)和RegularPolygon(10, 4, 5.6, 7.8)创建三个RegularPolygon对象,输出每个对象的周长和面积。

package major;
import java.lang.Math;
public class major {
	public static void main(String arg[]){
		double c1,c2,c3,s1,s2,s3;
		RegularPolygon r1=new RegularPolygon();
		RegularPolygon r2=new RegularPolygon(6,4);
		RegularPolygon r3=new RegularPolygon(10,4,5.6,7.8);
		c1=r1.getPerimeter();
		s1=r1.getArea();
		c2=r2.getPerimeter();
		s2=r2.getArea();
		c3=r3.getPerimeter();
		s3=r3.getArea();
		System.out.printf("%fl%fl%fl%fl%fl%fl",c1,s1,c2,s2,c3,s3);
	}
}

class RegularPolygon{
	int n;
	double side;
	double x;
	double y;
	double getPerimeter(){
		return this.n*this.side;
	}
	double getArea(){
		double s;
		s=(this.n*this.side*this.side)/(4*Math.tan(Math.PI/this.n));
		return s;
	}
	RegularPolygon(){
		n=3;
		side=1;
		x=0;
		y=0;
	}
	RegularPolygon(int n_,double side_){
		n=n_;
		side=side_;
		x=0;
		y=0;
	}
	RegularPolygon(int n_,double side_,double x_,double y_){
		n=n_;
		side=side_;
		x=x_;
		y=y_;
	}
	public int getn(){
		return this.n;
	}
	public double getside(){
		return this.side;
	}
	public double getx(){
		return this.x;
	}
	public double gety(){
		return this.y;
	}
	public void setn(int n_){
		this.n=n_;
	}
	public void setside(double side_){
		this.side=side_;
	}
	public void setx(int x_){
		this.x=x_;
	}
	public void sety(int y_){
		this.y=y_;
	}

}

6.7. 8. 分析程序,给出运行结果     

class B {
    int x=100,y=200;
    public void setX(int x){
        x=x;
    }
    public void setY(int y){
        this.y=y;
    }
    public int getXYSum(){
        return x+y;
    }
}
public class A{
    public static void main(String args[]){
        B b=new B();
        b.setX(-100);
        b.setY(-200);
        System.out.printf("sum=%d\n", b.getXYSum());
    }
}

 6.运行结果:sum=-100

public class A{
    public static void main(String args[]){
        B b=new B(20);
        add(b);
        System.out.printf("%d\n", b.intValue());
    }
    public static void add(B m){
        int t=777;
        m.setIntValue(t);
    }
}
class B{
    int n;
    B(int n){
        this.n=n;
    }
    public void setIntValue(int n){
        this.n=n;
    }
    int intValue(){
        return n;
    }
}

 7.运行结果:777

class B{
    int n;
    static int sum=0;
    void setN(int n){
        this.n=n;
    }
    int getSum(){
        for(int i=1;i<=n;i++)
            sum=sum+i;
        return sum;
    }
}
public class A{
    public static void main(String args[]){
        B b1=new B(),b2=new B();
        b1.setN(3);
        b2.setN(5);
        int s1=b1.getSum();
        int s2=b2.getSum();
        System.out.printf("%d\n", s1+s2);
    }
}

8.运行结果:27

class B{
    int n;
    static int sum=0;
    void setN(int n){
        this.n=n;
    }
    int getSum(){
        for(int i=1;i<=n;i++)
            sum=sum+i;
        return sum;
    }
}

public class A{
    public static void main(String args[]){
        B b1=new B(),b2=new B();
        b1.setN(3);
        b2.setN(5);
        int s1=b1.getSum();
        int s2=b2.getSum();
        System.out.printf("%d\n", s1+s2);
    }
}

9.10.程序改错:将下面给出的程序修改成正确的代码

9.正确代码

class A {
        static int x=100;
        static long y=200;
        public static void main(String args[]){
            x=-23;
        }
        public void f(){
            y=300;
        }
    }

10.正确代码

class Tom{
    int x=120;
    int y=20;
    int z=11;
    void f(){
        x=200;
        System.out.printf("%d\n", x);
    }
    void g(){
        x=200;
        System.out.printf("%d\n", x);
    }
}

public class A{
    public static void main(String args[]){
        Tom tom=new Tom();
        tom.x=22;
        tom.y=33;
        tom.z=55;
        tom.f();
        tom.g();
    }
}

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐