Java学生类里面包含其他类怎么写创建对象_实例化

  什么是程序?程序是为了模拟现实世界,解决现实问题而使用计算机语言编写的指令集合。
  简单点说就是虚拟现实,使虚拟的网络世界更像真实的现实世界,或者说现实世界越来越网络化,虚拟化,最终的目标就是人网合一,无敌!233333。
  c 语言是面向过程编程,java 是面向对象编程。更高级,更抽象化,更简单。
  面向对象思想是一切客观存在的事物都是对象,万物皆对象。任何对象,一定具有自己的特征和行为。
  在程序中,具化为类,属性,方法。做法就是定义类,定义类的属性和方法,实例化类,然后调用类的属性和方法,实现目的。
  一个简单的“学生”类,定义属性和方法。

// 定义学生类:

public class Student {

	// 属性
	// 姓名
	String name;
	// 年龄
	int age;
	//性别
	String sex;
	// 分数
	double score;
	
	// 方法
	public void sayHi() {
		System.out.println("我叫"+ name + ",我"+ age + "岁,"+ sex + ",得了"+ score + "分。");
	}
}

实例化“学生”类并调用方法。

public class Test {
	
	public static void main(String[] args) {
		Student stu1 = new Student();
		stu1.name = "张1";
		stu1.sex = "男";
		stu1.age = 12;
		stu1.score = 98.0;
		
		// 我叫张1,我12岁,男,得了98.0分。
		stu1.sayHi();
		
		Student stu2 = new Student();
		stu2.name = "张2";
		stu2.sex = "女";
		stu2.age = 22;
		stu2.score = 100.0;
		
		// 我叫张2,我22岁,女,得了100.0分。
		stu2.sayHi();
	}
}

  类定义了对象应具有的特征和行为,类是对象的模板;对象是拥有多个特征和行为的实体,对象是类的实例。stu1、stu2 就是 Student 这个类的实例化对象,赋值、调用等操作的都是对象。
  通过老师调动学生。

public class Teacher {
	// 属性
	// 姓名
	String name;
	// 年龄
	int age;
	// 性别
	String sex;
	// 部门
	String deptment;
	
	public void sayHi() {
		System.out.println("我叫"+ name + ",我"+ age + "岁,"+ sex + ",在"+ deptment + "部门。");
	}
	
	// 调动学生属性和方法
	public void sayHello(Student stu) {
		System.out.println(name + "老师,对" + stu.name + "学生说: 你好。");
		stu.sayHi();
	}
}
public class Test {
	
	public static void main(String[] args) {
		Student stu1 = new Student();
		stu1.name = "张1";
		stu1.sex = "男";
		stu1.age = 12;
		stu1.score = 98.0;
		
		stu1.sayHi();
		
		Teacher teacher = new Teacher();
		teacher.name = "李四";
		teacher.sex = "女";
		teacher.age = 42;
		teacher.deptment = "教学";
		
		// 我叫李四,我42岁,女,在教学部门。
		teacher.sayHi();
		
		// 李四老师,对张1学生说: 你好。 
		// 我叫张1,我12岁,男,得了98.0分。
		teacher.sayHello(stu1);
	}
}

  实例变量(类属性)不赋值不会报错,可以直接访问。

Student stu1 = new Student();

// 我叫null,我0岁,null,得了0.0分。
stu1.sayHi();

  在方法内部可以定义同属性名一样的局部变量,局部变量在实例变量后运行,所以会覆盖实例变量的值。

// 定义学生类:

public class Student {

	// 属性
	// 姓名
	String name;

	// 方法
	public void sayHi() {
		
		String name = "王五";
		
		System.out.println("我叫"+ name + ",我"+ age + "岁,"+ sex + ",得了"+ score + "分。");
	}
}

	// name 输出一直是王五。
	stu1.sayHi();

  java 方法重载是在一个类中定义多个相同名称的方法。只改变方法的参数类型、个数或顺序,与访问修饰符、返回值类型无关。好处是灵活、方便、屏蔽使用差异。

// 计算器的方法重载
public class Calc {
	
	public int add(int sum1, int sum2) {
		return sum1 + sum2;
	}
	
	public int add(int sum1, int sum2, int sum3) {
		return sum1 + sum2 + sum3;
	}
	
	public int add(int sum1, int sum2, int sum3, int sum4) {
		return sum1 + sum2 + sum3 + sum4;
	}
}

//调用
System.out.println(calc.add(1, 2));
System.out.println(calc.add(1, 2, 3));
System.out.println(calc.add(1, 2, 3, 4));

   OC 里没有方法重载的概念。通过万能指针 id ,也叫泛型指针解决相同个数,不同类型参数传值的问题。