java面向对象程序设计课程4

类和对象

  1. 对象

什么是对象?
现实世界中的所有具体的事物都可以视为对象
Java中万物皆对象
对象:用于描述客观事物的一个实体,由一组属性和方法构成

对象的属性:对象具有的各种特征。如年龄,性别,生日等。每个对象的每个属性都拥有特定值,如每个人的年龄,生日,性别等的值有的相同,有的不同。
对象的操作和行为:在java里面,对象的操作和行为被称为方法。

例子 如学号为12的学生小明。
小明这个对象的属性有:姓名,年龄,生日,学号,性别,体重,身高等。
小明这个对象的行为有:做作业,上课,吃饭,睡觉,打游戏等

类是具有相同属性和共同行为的一组对象的集合。
类不是指具体个例,而是一个类别。

如 某个人是一个对象,而由很多个这种对象组成的就是类。由很多人组成的类就叫人类。
如 车牌号为贵A12312的车为一个对象,而802路公交车则为一个类。因为802路公交车由很多个单个的车对象组成。

  1. 类和对象的关系

类是抽象的,对象是具体的;
类是对象的模板,对象是由类创建出的一个实例。
从类的作用来分析,类相当于加工厂的一个模型,而对象则是被这个模型加工出来的具体产品。使用类创建的对象都具有类的属性和方法。每个对象的属性值可能不同。
类是对象的抽象,对象是类的实例。抽象是提取对象的特征的过程。

由类创建对象

  1. 类的创建
public class Doctor {
	// 类的属性:年龄 姓名  生日 性别  类型
	int age;
	String name;
	String birthday;
	char gender;
	String doctorType;
	// 类的行为
	public void zhiBing(){
		System.out.println(name+"医生在治病");
	}
	public void zhuaYao() {
		System.out.println(name+"去抓药");
	}
	public void showInfo(){
		System.out.println(age+":age");
		System.out.println(name+"name");
		System.out.println(birthday+"b:irthday");
		System.out.println(gender+":gender");
		System.out.println(doctorType+"doctorType");
	}
}
/**
 * 命名规则
 * 类名:每个单词首字母都要大写   ==》帕斯卡命名
 * 属性名:首字母小写,后面每个单词首字母大写   nianLing ==》驼峰式命名
 * 方法名:首字母小写,后面每个单词首字母大写  daYouXi
 */
  1. 创建对象和使用对象
public class Demo4 {
	public static void main(String[] args) {
	    //1. 创建对象   类名 对象名=new 类名();
		Doctor doctor=new Doctor(); 	
		//2. 给对象的属性赋值
		doctor.age=12;
		doctor.birthday="2001年3月2号";
		doctor.doctorType="老中医";
		doctor.gender='男';
		//3. 调用方法 对象名.方法名();
		doctor.zhiBing(); 
		doctor.zhuaYao();
		doctor.showInfo();
		doctor.showInfo();
	}
}
  1. 构造方法实例化对象

构造方法:用来实例化对象,可以在构造方法里面对实例化的目标对象的属性进行初始化赋值操作

操作步骤

  1. 在类里面声明构造方法
  2. 调用构造方法创建对象并传入要初始化的对象的属性值
  3. 调用对象的方法
package demo21;

public class Doctor {
	// 年龄 姓名  生日 性别  类型
	// 声明方法
	// 创建一个启动类 在启动类的main方法里面去创建医生对象 给对象赋值,调用对象的方法
	int age;
	String name;
	String birthday;
	char gender;
	String doctorType;
	public void zhiBing(){
		System.out.println(name+"医生在治病");
	}
	public void zhuaYao() {
		System.out.println(name+"去抓药");
	}
	public void showInfo(){
		System.out.println(age+":age");
		System.out.println(name+"name");
		System.out.println(birthday+"b:irthday");
		System.out.println(gender+":gender");
		System.out.println(doctorType+"doctorType");
	}
	/**
	 * 构造方法:用来实例化对象,可以在构造方法里面对实例化的目标对象的属性进行初始化赋值操作
	 */
	public Doctor(){
		//默认的构造方法 
		//默认的构造方法里面做了些啥?对对象的属性进行默认值的赋值
		// String 类型的属性   null   null----什么都没有 空
		// int 类型的属性  0
		// char 类型的属性  白板
		// name="张三";
		age=0;
		birthday=null;
		//gender=特数符号
		doctorType=null;
	}
//	Doctor doctor=new Doctor("张三",18);
	public Doctor(String name1,int age1){
		//自定义构造方法   在方法的括号里面定义多个变量,变量用于给类的实例化对象赋值。
		name=name1;
		age=age1;
	}
	/**
	 * 声明构造方法
	 */
	public Doctor(String doctorType1,String name1,char gender1,int age1){
		doctorType=doctorType1;
		name=name1;
		gender=gender1;
		age=age1;
	}
}
  1. 上述代码中声明了三个构造方法,当没有声明构造方法时,系统会调用默认的构造方法,并给对象的属性赋值为默认的值
  2. 调用构造方法来创建对象时,会根据传入的参数值来判断选择使用哪个构造方法来进行实例化对象。
  3. 同一个类里面可以声明多个构造方法,但是要保证其参数不能相同。
// 使用构造方法来创建对象
public class Demo4 {
	public static void main(String[] args) {
		Doctor doctor=new Doctor("张三",18); //创建对象   类名 对象名=new 类名();
		doctor.showInfo();
	}
}

版权声明:本文为qq_33183456原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。