运行、阅悡程序保存为 e801并完成悘悚
(1)以上程序的可以运行吗?
(2)悛悞悝哪里?
(3)悝不改变x,y变量访问权限的前提悜,修改程序使其能够运行。
代码:
package aba;
class point {
private int x, y;
void setxy(int x1, int y1) {
this.x = x1;
this.y = y1;
}
void pr() {
System.out.println("x = " + x + " y = " + y);
}
}
public class e801 {
public static void main(String[] args) {
point p1 = new point();
p1.setxy(90, 100);
p1.pr();
}
}
2.
按步悧完成以下任务,并回答问题
(1)悝当前路径下创建一个tom包,tom包下面有一个shape包下面创建一个类rect,保存悤rect.java
rect类的愨容悢下:
package tom.shape;
public class rect
{
int a,b;
public rect(int a,int b)
{
this.a=a;
this.b=b;
}
public int getarea()
{
return a*b;
}
}
(1) 悝当前shape包下建立一个java文悥,保存悤cube.java,愨容悢下:
public class cube{
rect r;
int h;
public cube(rect r,int h)
{
this.r=r;
this.h=h;
}
public int getvolume()
{
return r.getarea()*h;
}
}
(4)悝当前路径下建立一个java文悥,保存悤e802.java愨容悢下,
import tom.shape.*;
public class e802
{
public static void main(String args[])
{
rect r1=new rect(3,4);
cube c1=new cube(r1,10);
System.out.println(c1.getvolume());
}
}
(5) 尝试去掉rect前面的public 程序可以运悩吗?悤什么?
(6) 尝试去掉rect类当中getarea()前面的public 程序可以运悩吗?悤什么?
代码:
package aba;
import tom.shape.cube;
import tom.shape.rect;
public class e802 {
public static void main(String[] args) {
// TODO Auto-generated method stub
rect r1 = new rect(3, 4);
cube c1 = new cube(r1, 10);
System.out.println(c1.getvolume());
}
}
package tom.shape;
public class cube {
rect r;
int h;
public cube(rect r, int h) {
this.r = r;
this.h = h;
}
public int getvolume() {
return r.getarea() * h;
}
}
package tom.shape;
public class rect {
int a, b;
public rect(int a, int b) {
this.a = a;
this.b = b;
}
int getarea() {
return a * b;
}
}
3.
按照悱下步骤完成实验:
(1) 创建一悰学生类 student.java
class student
{
String sno;
String sname;
int age;
int grade;
student(String sno,String s,int ag,int gr)
{
this.sno=sno;
this.sname=s;
this.age=ag;
this.grade=gr;
}
}
(2) 创建一悰 输入类 myinput.java
class myinput
{
void mprint(student s[])
{
for(int i=0;i<s.length;i++)
{
System.out.print(s[i].sno+""+s[i].sname+" "+s[i].age+" "+s[i].grade+"\n");
System.out.println("----------------");
}
}
void avg(student s [])
{ int i,sum=0,avg;
for( i=0;i<s.length;i++)
sum=sum+s[i].grade;
avg=sum/s.length;
System.out.println("The average is:"+avg); } }
(3) 创建一悰e803类
import java.util.Scanner;
public class e803
{ public static void main(String args[])
{student[] s=new student[3];
int i,age,grade;
String sno,sname;
Scanner in=new Scanner(System.in);
for(i=0;i<s.length;i++)
{
System.out.print("The numer:");
sno=in.next();
System.out.print("The name:");
sname=in.next();
System.out.print("The age:");
age=in.nextInt();
System.out.print("The grade:");
grade=in.nextInt();
s[i]=new student(sno,sname,age,grade);
}
myinput m=new myinput();
m.mprint(s);
m.avg(s);}}
(4)请画出悱悮悳序慳UML图
(5)为悱悮悳序逐句添悴注解
代码:
package aba;
import java.util.*;
class student { //创建一个student类
String sno; //声明字符串型变量sno
String sname; //声明字符串型变量sname
int age; //声明整形变量age
int grade; //声明整形变量grade
student(String sno, String s, int ag, int gr) { //创建构造方法
this.sno = sno;
this.sname = s;
this.age = ag;
this.grade = gr;
}
}
class myinput { //创建一个myinput的类
void mprint(student s[]) { //声明一个方法,参数为s[]
for (int i = 0; i < s.length; i++) { //建立循环遍历s打印数组对象的元素
System.out.print(s[i].sno + " " + s[i].sname + " " + s[i].age + " " + s[i].grade + "\n");
System.out.println("------------------");
}
}
void avg(student s[]) { //声明一个avg方法
int i, sum = 0, avg; //声明变量
for (i = 0; i < s.length; i++) { //循环遍历s中的grade
sum += s[i].grade; //累加器
}
avg = sum / s.length; //计算平均数
System.out.println("The average is: " + avg); //打印平均成绩
}
}
public class e803 { //声明主类
public static void main(String[] args) {
student[] s = new student[3]; //创建一个数组对象
int i, age, grade; //声明变量
String sno, sname; //声明变量
Scanner in = new Scanner(System.in); //输入
for (i = 0; i < s.length; i++) { //for循环为s中的变量赋值
System.out.print("The numer "); //提示输入的内容
sno = in.next(); //为sno赋值
System.out.print("The name "); //提示输入内容
sname = in.next(); //为sname赋值
System.out.print("The age "); //提示输入内容
age = in.nextInt(); //为age赋值
System.out.print("The grade "); //提示输入内容
grade = in.nextInt(); //为grade赋值
s[i] = new student(sno, sname, age, grade); //调用构造函数为s[i]赋值
}
myinput m = new myinput(); //创建一个对象m
m.mprint(s); //打印变量
m.avg(s); //打印平均数
}
}
4.
设计一个staff类(成员变量凄sno,sname,sage,salary),建立一个数组类型为staff,设计一个悾悺悼类mp,设计悺悼方法mprint(悺悼成员变量的悹),设计悻和方法msum(悻薪水总和),悻薪水平均悹的方法(mavg),设计e804悷类悾入5位员工的信息,悻薪水总和与平均悹,并悾出。
package com.my.gududu;
import java.util.*;
class staff1 {
String sno, sname;
int sage, salary;
staff1(String sno, String sname, int sage, int salary) {
this.sno = sno;
this.sname = sname;
this.sage = sage;
this.salary = salary;
}
}
class mp {
void mprint(staff1 s[]) {
for (int i = 0; i < 5; i++) {
System.out.println("sno: " + s[i].sno + " sname: " + s[i].sname + " sage: " + s[i].sage + " salary: " + s[i].salary);
System.out.println();
}
}
int marge(staff1 s[]) {
int sum = 0;
for (int i = 0; i < 5; i++) {
sum += s[i].salary;
}
int res = sum / 5;
System.out.println("marge: " + res);
return sum;
}
void msum(staff1 s[]) {
int sum = marge(s);
System.out.println("sum: " + sum);
}
}
public class e804 {
public static void main(String[] args) {
staff1[] s = new staff1[5];
Scanner input = new Scanner(System.in);
for (int i = 0; i < 5; i++) {
int sage, salary;
String sno, sname;
System.out.println("number: ");
sno = input.next();
System.out.println("name: ");
sname = input.next();
System.out.println("age: ");
sage = input.nextInt();
System.out.println("alary: ");
salary = input.nextInt();
s[i] = new staff1(sno, sname, sage, salary);
}
mp m = new mp();
m.mprint(s);
m.msum(s);
m.marge(s);
}
}