码云练习地址:https://gitee.com/bubblerui/16012019/tree/master
码云考核地址:https://gitee.com/bubblerui/1601201902/tree/master
7-1 学生类-构造函数
定义一个有关学生的Student类,内含类成员变量: String name、String sex、int age,所有的变量必须为私有(private)。
1.编写有参构造函数:能对name,sex,age赋值。
2.覆盖toString函数: 按照格式:类名 [name=, sex=, age=]输出。使用idea自动生成,然后在修改成该输出格式。
3.对每个属性生成setter/getter方法。
4.main方法中:输入1行name age sex , 调用上面的有参构造函数新建对象。
输入样例:
tom 15 male
输出样例:
Student [name='tom', sex='male', age=15]
相关知识点:
类声明通过使用class关键字来定义类,类名是java的合法标识符。
进行类声明并且为对象赋值为"this.对象名",为方法赋参数,主函数调用
设计思路;
创建类并实例化类并进行调用
程序代码:
1 import java.util.Scanner; 2 class Student{ //类声明(年龄,姓名,性别) 3 private String name; 4 private String sex; 5 private int age; 6 public Student(){ //实例化成员变量 7 this.name = "TOM"; 8 this.sex = "male"; 9 this.age = 15; 10 } 11 public void toString(String t, int m, String o){ //参数他t,m,o是tostring方法的参数 12 this.name = n; 13 this.sex = s; 14 this.age = a; 15 System.out.println("Student [name='"+this.name+"', sex='"+this.sex+"', age="+this.age+"]"); //输出 16 } 17 } 18 public class Main{ //定义主函数 19 public static void main(String[] args){ 20 Scanner reader = new Scanner(System.in); 21 String n = reader.next(); 22 int s = reader.nextInt(); 23 String s = reader.next(); 24 Student tt = new Student(); 25 tt.toString(n,s,a); 26 } 27 }
运行结果:
7-2 定义类
请补充以下代码,完成输出要求。(注意:需要提交完整代码)
1 import java.util.Scanner; 2 public class Main { 3 public static void main(String[] args) { 4 Scanner in = new Scanner(System.in); 5 int a,b,c,d,e; 6 a = in.nextInt(); 7 b = in.nextInt(); 8 c = in.nextInt(); 9 d = in.nextInt(); 10 e = in.nextInt(); 11 RR rr = new RR(); 12 double dd = rr.fun(a,b,c,d,e); 13 System.out.printf("%.2f",dd); 14 } 15 } 16 class RR{ 17 18 19 20 }
输入格式:在一行中给出5个不超过1000的正整数。
输出格式:输出5个整数的平均值,保留小数点后两位。
输入样例:
1 2 3 4 5
输出样例:
3.00
输入格式:在一行中给出5个不超过1000的正整数。
输出格式:输出5个整数的平均值,保留小数点后两位。
输入样例:
1 2 3 4 5
输出样例:
3.00
知识点:参数传值,运算过程,return有返回值
设计思路:引用类型进行参数传值
程序代码:
1 import java.util.Scanner; 2 public class Main { 3 public static void main(String[] args) { 4 Scanner in = new Scanner(System.in); 5 int a,b,c,d,e; 6 a = in.nextInt(); 7 b = in.nextInt(); 8 c = in.nextInt(); 9 d = in.nextInt(); 10 e = in.nextInt(); 11 RR rr = new RR(); 12 double dd = rr.fun(a,b,c,d,e); 13 System.out.printf("%.2f",dd); 14 } 15 } 16 class RR{ 17 public double fun(int a, int b, int c, int d, int e) 18 { 19 return (a+b+c+d+e)/5; 20 } 21 }
7-3 横平竖直
程序填空题。根据题目要求完善下面的代码。请提交完整代码。 一个木块如果高度比宽度大,我们说它是竖着放的,否则我们说它是平放的。 读入一个木块的高度和宽度。如果它是平放的,则输出A,否则输出B。
1 import java.util.Scanner;
2 public class Main{
3 public static void main(String[] args){
4 Scanner in = new Scanner(System.in);
5 int height, width;
6 char status;
7 height = in.nextInt();
8 width = in.nextInt();
9 Board board = new Board(height, width);
10 status = board.getStatus();
11 System.out.print(status);
12 }
13 }
14 class Board{
15 int height, width;
16 public Board(int height, int width){
17 this.height = height;
18 this.width = width;
19 }
20 public char getStatus(){
21 if(height<=width){
22 return status(1);
23 }else{
24 return status(1.0);
25 }
26 }
27 public char status(double rate){
28
29 }
30 public char status(int rate){
31
32
33 }
34 }
输入格式:输入在一行中给出2个绝对值不超过1000的正整数A和B。
输出格式:在一行中输出一个字符A或者B。
输入样例:
50 50
输出样例:
A
知识点;return作用:
(1)返回方法指定类型的值(这个值总是确定的),也可以是对象
(2)方法的结束
两种形式:
(1)有返回类型 例如:return i;
(2)无返回类型 return;
有void代表无返回值,没有void有返回值。
程序代码;
1 import java.util.Scanner; 2 public class Main{ 3 public static void main(String[] args){ 4 Scanner in = new Scanner(System.in); 5 int height, width; 6 char status; 7 height = in.nextInt(); 8 width = in.nextInt(); 9 Board board = new Board(height, width); 10 status = board.getStatus(); 11 System.out.print(status); 12 } 13 } 14 class Board{ 15 private static final char A = 0; 16 private static final char B = 0; 17 int height, width; 18 public Board(int height, int width){ 19 this.height = height; 20 this.width = width; 21 } 22 public char getStatus(){ 23 if(height<=width){ 24 return status(1); 25 }else{ 26 return status(1.0); 27 } 28 } 29 public char status(double rate){ 30 return 'B'; 31 32 33 } 34 public char status(int rate){ 35 return 'A'; 36 37 } 38 }
运行结果:
7-4 程序改错题2
程序改错题。以下代码存在错误,请修改后提交。
1 public class Main {
2 public static void main(String[] args) {
3 Animal animal = new Dog();
4 animal.shout();
5 animal.run();
6 }
7 }
8
9 class Animal {
10 void shout() {
11 System.out.println("animal shout!");
12 }
13 }
14
15 class Dog extends Animal {
16 void shout() {
17 super.shout();
18 System.out.println("wangwang……");
19 }
20
21 void run() {
22 System.out.println("Dog is running");
23 }
24 }
输入样例:
无
输出样例:
animal shout!
wangwang……
Dog is running
知识点:子类与父类的继承关系,其中注意子类调用父类的构造方法
程序代码;
1 public class Main { 2 public static void main(String[] args) { 3 Animal animal = new Dog(); 4 animal.shout(); 5 ((Dog) animal).run(); 6 } 7 } 8 9 class Animal { 10 void shout() { 11 System.out.println("animal shout!"); 12 } 13 } 14 15 class Dog extends Animal { 16 void shout() { 17 super.shout(); 18 System.out.println("wangwang……"); 19 } 20 21 void run() { 22 System.out.println("Dog is running"); 23 } 24 }
运行结果:
学习内容 | 代码(行) | 博客(字) |
定义类 | 47 | 100 |
继承 | 27 | 21 |
构造方法与对象 | 17 | - |