先学习了java的一些命名规则。

1、类名首字母大写,如Student。

2、方法和属性首字母必须小写。如int age; 如String name;

3、由多单词组成的,必须采用驼峰标识。如int arrMaxLength;


在java中,所有对象都有toString方法。

如果该类中没有自定义toString方法,则会输出对象的哈希码值。

系统在调用输出的时候会自动使用toString方法。输出对应的String。


与C++不同,在java中,对象的初始化必须使用new 对象名()初始化,或者将一个已经初始化的对象拷贝给它。错误使用如下

public class Test {
	public static void main(String[] args){
		Student stu;
		stu.print();  //这边将提示未初始化的错误
	}
}
class Student{
	public void print(){
		System.out.print("stu!!");
	}
}

通过new 对象名之后,代码就正确了。如下

public class Test {
	public static void main(String[] args){
		Student stu=new Student();
		stu.print();
	}
}
class Student{
	public void print(){
		System.out.print("stu!!");
	}
}

对应内存图如下。

java根据classtype转换对象 class对象转成java对象_java


在一个java文件中,最多只能存在一个类是public型。

在java中声明属性或者方法的访问类型不再像C++一样。是每一个属性或者方法前加访问类型。如

public class Test{
    private int no;
    private String name;
    public void print(){}
}


在类的方法定义中,使用this关键字代表使用该方法的对象的引用,有时使用this可以处理成员变量和参数重名的问题。

this可以看作是一个变量,它的值是当前对象的引用。这点与C++类似。


简单练习

程序说明:定义一个简单学生成绩管理系统。学生拥有学号,姓名,年龄。英语成绩,语文成绩,数学成绩,总和,平均分属性。

成绩管理系统功能。1,添加学生。2,根据学号查找学生成绩。3,根据学号更改成绩。4,输出所有学生成绩。

分析:主要包含两个类:学生类和学生管理类。

Student.java (学生类)如下

public class Student {
	private int no;
	private String name;
	private int age;
	private int math;
	private int english;
	private int chinese;
	private int sum;
	private int avg;
	
	public void setNo(int no){
		this.no=no;
	}
	public int getNo(){
		return no;
	}
	public void setName(String name){
		this.name=name;
	}
	public String getName(){
		return name;
	}
	public void setAge(int age){
		this.age=age;
	}
	public int getAge(){
		return age;
	}
	public void setMaht(int math){
		this.math=math;
	}
	public int getMath(){
		return math;
	}
	public void setEnglish(int english){
		this.english=english;
	}
	public int getEnglish(){
		return english;
	}
	public void setChinese(int chinese){
		this.chinese=chinese;
	}
	public int getChinese(){
		return chinese;
	}
	public void setSum(){
		sum=chinese+english+math;
	}
	public int getSum(){
		return sum;
	}
	public void setAvg(){
		avg=(chinese+english+math)/3;
	}
	public int getAvg(){
		return avg;
	}
	public String toString(){
		String str;
		str="\t"+no+"\t"+name+"\t"+age+"\t"+chinese+"\t"+math+"\t"+english+"\t"+sum+"\t"+avg;
		return str;
	}
}



AdminStudent.java (管理学生类)如下

public class AdminStudent {
	private String title="\t学号\t姓名\t年龄\t语文\t数学\t英语\t总和\t平均分";
	public void addStudent(String name,int age,Student[] stuArr){
		Student stu=new Student();
		int nums=getStuNums(stuArr);
		stu.setNo(nums);
		stu.setName(name);
		stu.setAge(age);
		if(nums==-1){
			System.out.println("人数已经达到上限!");
		}
		else{
			stuArr[nums]=stu;
		}
	}
	public int getStuNums(Student[] stuArr){
		for(int i=0;i<stuArr.length;i++){
			if(stuArr[i]==null){
				return i;
			}
		}
		return -1;
	}
	public void setScore(int no,int chinese,int math,int english,Student[] stuArr){
		stuArr[no].setChinese(chinese);
		stuArr[no].setMaht(math);
		stuArr[no].setEnglish(english);
		stuArr[no].setAvg();
		stuArr[no].setSum();
	}
	public boolean findStudent(int no,Student[] stuArr){
		if(no>stuArr.length || stuArr[no]==null){
			System.out.println("该学号不存在");
			return false;
		}
		else{
			System.out.println(title);
			System.out.println(stuArr[no]);
			return true;
		}
	}
	public void printAllStundet(Student[] stuArr){
		
		System.out.println(title);
		for(int i=0;i<stuArr.length;i++){
			if(stuArr[i]!=null){
				System.out.println(stuArr[i]);
			}
		}
	}
}



StudentAdmin.java (主程序)如下

import java.util.Scanner;

public class StudentAdmin {
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		boolean exit=false;
		Student stu[]=new Student[5];
		AdminStudent adminStu=new AdminStudent();
		while (!exit) {
			System.out.println("学生成绩管理系统,请选择功能:");
			System.out.println("1、添加学生");
			System.out.println("2.根据学号查找学生成绩");
			System.out.println("3.根据学号更改学生成绩");
			System.out.println("4.退出");
			int sel=in.nextInt();
			switch(sel){
			case 1:
				System.out.println("请输入学生姓名");
				String name=in.next();
				System.out.println("请输入学生年龄");
				int age=in.nextInt();
				adminStu.addStudent(name, age, stu);
				adminStu.printAllStundet(stu);
				break;
			case 2:
				System.out.println("请输入学生学号");
				int no=in.nextInt();
				adminStu.findStudent(no, stu);
				break;
			case 3:
				System.out.println("请输入学生学号");
				int sno=in.nextInt();
				if(adminStu.findStudent(sno, stu)){
					System.out.println("请输入语文成绩");
					int chinese=in.nextInt();
					System.out.println("请输入英语成绩");
					int english=in.nextInt();
					System.out.println("请输入数学成绩");
					int math=in.nextInt();
					adminStu.setScore(sno, chinese, math, english, stu);
				}
				break;
			case 4:
				System.out.println("系统退出成功!");
				exit=true;
				break;
			default:
				break;
			}
		}
	}
}