0
点赞
收藏
分享

微信扫一扫

【homework】类与对象的基础应用(Student类)

Villagers 2022-03-23 阅读 36
javaeclipse

【题目】

定义一个Student类,包含的内容如下:

成员变量:学号、姓名、数学成绩、语文成绩;

成员方法:求成绩总分,求平均分

编程实现这个类,并调用相应的方法计算总分和平均分


类和对象基本概述

1、对象

①定义:在现实世界中,是客观世界中的一个实体

              在计算机世界中,是一个可表示的存储区域 

②对象具有唯一性

③对象具备特征:属性、行为

2、类

①定义:具有共同属性和行为的对象集合

②属性:变量

③行为:方法

3、类是对象的抽象(模板),对象是类的实例 


建立Student类

1.命名规则

类的声明:[public] class 类名{}

成员变量命名规则:[修饰符] 变量类型 变量名 = [初始值];

成员方法命名规则:返回值类型 方法名(参数列表){方法体}

2.命名规范

变量方法名:首字母小写、驼峰原则

常量:大写字母、下划线

类名:首字母大写、驼峰规则

3.成员变量相关

无论成员变量在哪声明,作用域均为整个类体

成员变量可声明赋值,也可在方法中赋值

成员变量不可以在声明和方法之间赋值

4.成员变量默认规则

//局部变量无默认初始值,使用之前要赋值

boolean——false

byte、short、int、long——0

float、double——0.0

char——空字符

引用类型——null

5.修饰符

作用域同一个类同一个包子孙类所有类
public
protected

×

friendlly(default)××
private×××

final:最终成员变量

static:静态成员变量

6.static(类变量)

类变量不属于任何一个类的具体对象

是保存在类的内存区的公共存储单元

任何一个类的对象访问它,得到的都是相同的值

任何一个类的对象修改它,都是对同意内存单元进行操作

7.实例变量

没有用static修饰的变量是实例变量,必须实例化该类才可以使用实例变量

该类的不同对象都各自拥有自身的实例变量的版本


建立对象(数组——数量由输入端决定)

1.创建对象

①类名 对象名

   对象名 = new 类名()

②类名 对象名 = new 类名()

2.访问对象

①对象名.变量名

②对象名.方法名


从输入端接收信息——由学号进行演示


从输入端接收学号,并输出相应数据——由总成绩进行演示


全部代码

1.Student类

public class Student { 
	//定义成员变量
	long num ;//学号
	String name;//姓名
	int gradeMath;//数学成绩
	int gradeCh;//语文成绩
	//定义成员方法
	int total(int a,int b) {
		return (a+b);
	}
	double averge(int a,int b) {
		return((a+b)/2);
	}
}

2.text类

import java.util.Scanner;

public class text {
	public static void main(String[] args) {
		System.out.println("请先输入相关信息");
		System.out.println("请输入想要输入信息的人数:");
		Scanner sc_all = new Scanner(System.in);
		int all = sc_all.nextInt();
		//创建学生数组
		Student[] st = new Student[all];
		//创建学生对象
		for(int i=0;i<all;i++) {
			st[i] = new Student();
		}
		//输入信息部分
		for(int i=0;i<all;i++) {
			//输入学号
			System.out.println("请输入该学生的学号:");
			System.out.println("学号即为序号,请勿超过之前所输入的人数(从1开始)");
			Scanner sc_num = new Scanner(System.in);
			st[i].num = sc_num.nextLong();
			//输入姓名
			System.out.println("请输入该学生的姓名:");
			Scanner sc_name = new Scanner(System.in);
			st[i].name = sc_name.next();
			//输入数学成绩
			System.out.println("请输入该学生的数学成绩:");
			Scanner sc_gradeMath = new Scanner(System.in);
			st[i].gradeMath = sc_gradeMath.nextInt();
			//输入语文成绩
			System.out.println("请输入该学生的语文成绩:");
			Scanner sc_gradeCh = new Scanner(System.in);
			st[i].gradeCh = sc_gradeCh.nextInt();
			//由输入端判断循环是否结束
			System.out.println("若结束信息输入输入1,若继续输入2:");
			Scanner sc_pd = new Scanner(System.in);
			int pd = sc_pd.nextInt();
			if(pd==1) {
				break;
			}
		}
		
		//根据学号查询信息部分
		System.out.println("请输入查询学生的学号");
		Scanner sc_search = new Scanner(System.in);
		int search = sc_search.nextInt()-1;
		System.out.println
		(st[search].total(st[search].gradeMath, st[search].gradeCh));
		System.out.println
		(st[search].averge(st[search].gradeMath, st[search].gradeCh));
	}

}

运行结果

举报

相关推荐

0 条评论