码云地址:https://gitee.com/shikexin/16012018__shi_kexin/tree/master/skx

7-1 学生类-构造函数

定义一个有关学生的Student类,内含类成员变量: String name、String sex、int age,所有的变量必须为私有(private)。

1.编写有参构造函数:

能对name,sex,age赋值。

2.覆盖toString函数:

按照格式:类名 [name=, sex=, age=]输出。使用idea自动生成,然后在修改成该输出格式

3.main方法中

输入1行name age sex , 调用上面的有参构造函数新建对象。

输入样例:

tom 15 male

输出样例:

Student [name='tom', sex='male', age=15]

import java.util.Scanner;
class Student{
    private String name;
    private String sex;
    private int age;
    public Student(){
        this.name = "skx";
        this.sex = "male";
        this.age = 18;
    }
    public void toString(String a, int c, String b){
        this.name = a;
        this.sex = b;
        this.age = c;
        System.out.println("Student [name='"+this.name+"', sex='"+this.sex+"', age="+this.age+"]");
    }
}
public class Main{
    public static void main(String[] args){
        Scanner reader = new Scanner(System.in);
        String a = reader.next();
        int c = reader.nextInt();
        String b = reader.next();
        Student tt = new Student();
        tt.toString(a,c,b);
    }
}

 

程序的设计思路:
定义Student的构造方法,所有的变量必须为私有private,用this.xxx=xxx建立构造函数,定义toString方法,输出类名 [name=, sex=, age=],最后定义主类Main,给人创建个空间,并应用方法,然后按格式输出类名
[name=, sex=, age=]
考试的知识点:
私有变量,类体中变量的声明,方法的定义,构造方法和创建对象,对象的声明和为声明的对象分配变量,使用方法
运行结果:

 

7-2 定义类

请补充以下代码,完成输出要求

输入格式:

在一行中给出5个不超过1000的正整数。

输出格式:

输出5个整数的平均值,保留小数点后两位

输入样式:

1 2 3 4 5

输出样式:

3.00

import java.util.Scanner;
  public class Main {
      public static void main(String[] args) {
                  Scanner in = new Scanner(System.in);
                  int a,b,c,d,e;
                  a = in.nextInt();
                  b = in.nextInt();
                  c = in.nextInt();
                  d = in.nextInt();
                 e = in.nextInt();
                 RR rr = new RR();
                 double dd = rr.fun(a,b,c,d,e);
                 System.out.printf("%.2f",dd);
     }
 }
 class RR{
  public int fun(int a,int b,int c,int d,int e){
    return (a+b+c+d+e)/5;
  }
}

程序设计思路:

看题可知,需要定义RR类(输入五个数的平均值)定义变量,然后编写平均数式子用return传出返回值

考试的知识点:

return返回值

运行结果:

 

7-3 横平竖直

程序填空题。根据题目要求完善下面的代码。请提交完整代码。 一个木块如果高度比宽度大,我们说它是竖着放的,否则我们说它是平放的。 读入一个木块的高度和宽度。如果它是平放的,则输出A,否则输出B

输入格式:

输入在一行中给出2个绝对值不超过1000的正整数A和B。

输出格式:

在一行中输出一个字符A或者B。

输入样例:

50 50

输出样例:

A

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        int height, width;
        char status;
        height = in.nextInt();
        width = in.nextInt();
        Board board = new Board(height, width);
        status = board.getStatus();
        System.out.print(status);
    }
}
class Board{
   int height, width;
   public Board(int height, int width){
       this.height = height;
       this.width = width;
   }
   public char getStatus(){
       if(height<=width){
          return status(1);
       }else{
         return status(1.0);
       }
   }
   public char status(double rate){
     System.out.println("B");
     return 0;
} public char status(int rate){ 
     System.out.println("A");
     return 0;
}

}

程序设计思路:

定义了重载的方法,方法名相同,但是传入参数的类型不同,根据传入参数的类型进行匹配,输出A,B,应用return返回值

考试的知识点:

方法重载,参数传值。

运行结果:

 

 

 

7-4 程序改错题

程序改错题。以下代码存在错误,请修改后提交

输出样例:

animal shout!
wangwang……
Dog is running

public class Main{
    public static void main(String[] args) {
        Dog animal = new Dog();
        animal.shout();
        animal.run();
    }
}

class Animal {
    void shout() {
        System.out.println("animal shout!");
    }
}

class Dog extends Animal {
    void shout() {
        super.shout();
        System.out.println("wangwang……");
    }

    void run() {
        System.out.println("Dog is running");
    }
}

程序设计思路:

理解程序,animal是Dog的创建对象,要和new后面的类名一致

考试的知识点:

对象的创建,开辟空间

运行结果:

 

(答案是正确的,自己的电脑没设置好)

 

 

学习内容 代码行 博客字
类与对象,子类和继承 400 900