今天我带大家学习面向对象!!!!!

类和对象

1. 了解面向过程和面向对象的思想

吃货联盟订餐系统:简化的面向过程思想。

面向过程:面向方法、面向函数、结构化方法。

代码是有顺序的,需要什么功能就编写什么功能。

我们前期的语法阶段将吃货联盟代码全部放在main方法中,之后等我们学了方法,就会把吃货联盟稍微用正式的面向过程改造一下。(按照功能聚合到对应方法中)

[有难度,不是简单就能体会的]面向对象(OOP):**它是基于面向过程产生的一种更复杂的编程思想/编程方式。从现实世界抽象而来的!它的代码执行顺序不固定。

Java是不完全的面向对象、Python面向对象 、C#面向对象 、C++面向对象 、PHP也是面向对象的编程语言。

小例子:史浩然卖煎饼。 面向对象是项目复杂化、规模化的必然产物。

刚开始(面向过程):自己去采购 -> 自己准备好材料 -> 自己出摊 -> 自己迎接客人 -> 自己做煎饼 -> 自己收银 -> 自己收摊。

后面发达了(面向对象):采购部采购 -> 餐饮部准备材料 -> 服务员准备迎接客人 -> 厨师做菜 -> 收银员收银 -> 服务员收摊。

2. 理解类和对象的关系

生活中的对象

万物皆对象:你身边的任何一个物体/实体都可以称之为对象。

我们在描述生活中的一个个对象时通常都会采用特征+行为的方式。

特征:属性

行为:操作、方法

对象的概念:用来描述客观事物的一个实体,由一组属性和方法构成。

生活中的类

我们在看到一群对象/实体时,会下意识进行分类(人类认识事物的必然过程)。“物以类聚、人以群分”

学生(类别)、人类、哺乳类、爬行类、猫类、灵长类、啮齿类…

类(类别):它是一个抽象的概念,它是从一群对象中抽取共性的特征和行为产生的一个概念。没有办法具体拿某个对象来表示某个类别,因为对象只是类的一个个体。

生活中类和对象的关系:类是一个模板,对象是类的一个个体,是根据类这个模板而产生的个体。

程序中的类和对象

Java 是一个"不完全"的面向对象的编程语言。(因为有基本数据类型存在)

以类(引用数据类型)为基本单位,被class修饰的。

基本数据类型:byte short int long float double char boolean

引用数据类型:数组、类(String就是一个类)、接口、枚举…

程序中的类和对象都是从生活中抽象而成的,你在现实中如何描述它们,程序中也是。

3. 掌握类创建的方式

public  class 类名{
    // 1.此类的相关属性(成员变量/字段)
    
    // 2.此类的相关方法(成员方法/函数)
}

定义学生类:

public class Student{
    // 相关属性
    姓名
    学号
    班级
    专业
    性别....
    
    // 相关方法
    学习
    考试
    作业...
}

定义狗类:

public class Dog{
    // 相关属性
    姓名;
    品种;
    颜色;
    性别;
    年龄.....
    // 相关方法
    吃
    喝
    睡
    看家
}

定义计算机类:

public class Computer{
    // 相关属性
    品牌;
    型号;
    颜色;
    价格;
    处理器;
    屏幕尺寸;
    是否触屏;
    显卡;
    内存;
    .....
    // 相关方法
    放歌;
    敲代码;
    打游戏;
    看电影;
    ......
}

定义手机类:

public class Phone{
    品牌;
    型号;
    价格;
    颜色;
    内存;
    系统;
    .....
    打电话;
    发短信;
    拍照;
    .....
}
/**
 * 定义学生类
 * @author Charles
 * 2019年3月31日 上午10:53:52
 */
public class Student {

	// 一组属性(成员变量)
	/** 学生姓名 */
	public String stuName;
	/** 学生编号 */
	public int stuNo;
	/** 学生班级 */
	public int classId;
	/** 学生专业 */
	public String major;
	/** 学生性别 */
	public char gender;
	/** 学生年龄 */
	public int age;
	/** 学生成绩 */
	public double score;
	
	// 一组方法(成员方法)
	// public static void main(String[] args){}
	/**
	 * 学习方法
	 */
	public void study() {
		System.out.println(major+"专业的"+classId+"班级的"+stuName+"正在好好学习!");
	}
	
	/**
	 * 自我介绍
	 */
	public void showMyself() {
		System.out.println("姓名:"+stuName);
		System.out.println("班级:"+classId);
		System.out.println("专业:"+major);
		System.out.println("性别:"+gender);
		System.out.println("年龄:"+age);
		System.out.println("成绩:"+score);
		System.out.println("学号:"+stuNo);
	}
}

4. 掌握对象创建的方式

语法:类名 对象名 = new 类名();

Student chenXu = new Student(); // 基于Student模板创建了一个个体/对象

调用属性:

​ 对象名.属性名 = xxx; // 赋值

​ 对象名.属性名

调用方法:

​ 对象名.方法名();

public class Test {

	public static void main(String[] args) {

		// 根据类模板产生对象
		// 创建对象(对象名的命名规范和变量名一致)
		Student chenXu = new Student();
		Student shr = new Student();
		
		// 操作/调用属性
		shr.stuName = "史浩然";
		shr.classId = 335;
		shr.major = "电竞俱乐部厕所打扫官";
		
		chenXu.stuName = "陈旭";
		chenXu.classId = 335;
		chenXu.major = "建筑学";
		chenXu.gender = '男';
		chenXu.stuNo = 9527;
		chenXu.age = 12;
		
		// 操作/调用方法   input.nextInt();
		chenXu.showMyself();
		chenXu.study();
		
		// shr.study();
		// shr.showMyself();
		System.out.println(shr.stuName+"的专业是:"+shr.major);
	}

}

题外话:

​ 数据存储的技术

​ 变量

​ 数组:长度无法改变 存储的数据类型单一。

​ 对象:

​ 对象数组:Student[]…

5. 掌握基本方法创建

面向过程/方法/函数,结构化方法

方法:是功能,是一系列代码的聚合,也可以理解为一个魔术箱。

基本语法:

访问修饰符    返回值类型    方法名(参数列表){ // 方法声明
	// 方法体
}
// Arrays.toString(参数); 将数组转换为字符串
public void(表示没有返回值) showMyself(){
    syso();
}

功能代码的存储空间,以后使用可以复用。

猜你喜欢

转载自blog.csdn.net/hollow_0120/article/details/88964467