老师编辑和分享的课堂总结

面向对象

学习要求

1、听不懂没关系,不影响写代码,读着代码就会写了。

2、先会用,在用的过程中逐渐加深对面向对象的理解。

3、利用不断地练习,形成肌肉记忆(代码格式)和意识记忆(要啥给啥)。(开发中重要的思想而不是语法

引言

面向过程编程(POP --> Process-Oriented Programming)代表:C语言

面向对象编程(OOP --> Object-Oriented Programming)代表:C++、Java

面向切面编程(AOP --> Aspect-Oriented Programming)代表:Java

面向对象的定义

面向对象的思想是把一个项目、一件事情分成更小的项目,或者说分成一个个更小的部分,每一部分负责什么方面的功能,最后再由这些部分组合而成为一个整体。

[找合适的人做合适的事]()

生活中的面向对象和面向过程


举例:想吃烤羊排

面向对象:找个店铺吃

​ 1、去羊排店

​ 2、点一斤羊排

​ 3、等25分钟

​ 4、吃

​ 5、付款走人

面向过程:自己做着吃

​ 1、自己做羊排

​ 1.准备材料(羊、辅料、调料)

​ 2.备料

​ 3.烤箱预热,开烤

​ 4.15分钟翻面一次

​ 5.取出

​ 2、吃

​ 3、洗锅刷碗,打扫卫生

面向对象思想

1、面向对象是基于面向过程的编程思想

2、万物皆对象

3、对象具有唯一性

4、任何对象都具有一定的特征和行为;特征是事物的基本描述,行为是事物的功能

5、类是一组相关的属性和方法的集合,是一个抽象的概念

6、对象是类的具体存在

7、在一组相同或相似的对象中,抽取出共性的特征和行为,保留所关注的部分就是类的抽取

8、类是模板、图纸,通过类创造的对象就是实体

面向对象的优点

  • 直观,高效,与人类的思维习惯一致
  • 信息隐藏,提高了程序的可维护性和安全性
  • 提高了程序的可重用性

总结

面向过程:亲力亲为,自力更生,所有过程都要经历(诸葛亮是怎么死的,累死的)

面向对象:找合适的人做合适的事,直观高效(烤羊排)

类和对象

生活中的类和对象


对象
人类马云爸爸,麻花藤(隔壁老王、女朋友
狗类史努比,忠犬八公,高飞,斯派克,小白,王可可(单身狗、旺财、金毛、哈士奇
英雄类Faker的劫,The Shy的卢锡安,霸哥的石头人,马老师的螳螂(盖伦、锤石、EZ
化妆品类我的洗面奶(阿玛尼405唇釉,chill小辣椒口红,黛珂水乳,雅诗兰黛粉底液,nars腮红

这些对象有什么特点?

人类:

  • 马云爸爸,麻花藤

​ 都是特立独行的个体,我们一提起这个个体脑海中就能浮现出他的形象,

  • 隔壁老王、女朋友

​ 这些都不是对象,因为每个人都会有自己的隔壁老王,都有自己的女朋友,你脑海中的隔壁老王和你同桌脑海中的隔壁老王是同一个人吗?除非你们是同一个邻居还姓王那就不说了。但你们的女朋友总不会也是同一个吧?所以说,女朋友,隔壁老王都不是对象,你的隔壁老王,你的女朋友才是个对象!!!

狗类:

  • 史努比,忠犬八公,高飞,斯派克,小白,王可可

​ 这些都是独一无二的

  • 单身狗、旺财、金毛、哈士奇

​ 这些全都是类

Java中的类和对象


-

类是对某一类事物的描述,是抽象的、概念上的定义。类是模板,包含了一类事物所共有的特征(属性)和行为(方法)

以人类为例:

属性描述:学号、姓名、性别、年龄、身高、体重、地址、电话、微信、QQ...

行为描述:吃饭、睡觉、上班、学习、娱乐...

对象

对象是类的具体体现([属性和方法]()),是具体的、独一无二的个体。

以班长为例:

属性描述:班长的学号、班长的姓名、班长的身高...

行为描述:班长吃饭、班长睡觉、班长学习...

类和对象的关系

类是对象的抽象,对象是类的具体实现

类的定义

类是一种自定义的数据类型

格式:
    class 类名 {
        成员变量;// Field
        成员方法;// Method
    }

class:
    定义类的关键字

类名:
    大驼峰命名,首字母大写,见名知意
    类名就是一种数据类型(自定义引用的数据类型),就是模板的名字
    
成员变量(属性/特征描述):
    定义在类中,方法外的变量,用来描述类的特征
    
成员方法(行为描述):
    定义在类中,用来描述类的功能
class Student {
    // 成员变量【Field】
    String name;
    int age;
    char sex;

    // 成员方法【Method】
    public void eat() {
        System.out.println("吃");
    }

    public void sleep() {
        System.out.println("睡");
    }

    public void play() {
        System.out.println("玩");
    }
}

对象的创建

参考Scanner的创建,依葫芦画瓢

Scanner sc = new Scanner(System.in);
// 格式:
    类名 对象名 = new 类名([参数...]);
Person person = new Person();

对象的使用

参考数组和 Scanner 的使用,依葫芦画瓢

int[] array = new int[10];
array.length
    // 注意:这里没有 (),说明这不是方法,那它是什么?我们用它来表示数组的长度,数组的长度是数组的一个属性
    
Scanner sc = new Scanner(System.in);
sc.nextInt();
格式:
    使用成员变量:
        对象名.成员变量
    
    使用成员方法:
        对象名.成员方法()
// 通过Person类对象person操作name、sex、age属性
// 进行赋值操作
person.name = "张三";
person.age = 25;
person.sex = '男';

// 通过person进行取值操作
System.out.println(person.name);
System.out.println(person.age);
System.out.println(person.sex);

person.eat();
person.sleep();
person.play(); 

. 的含义是 “的”

person.name:person的name

person.age:person的年龄

person.sex:person的性别

扩展:

如果直接打印对象名,会得到一个对象的【地址】,这个地址包含两部分:1、完整的包名;2、当前对象存储在堆区内存中的空间首地址

对象内存分析图


对象内存分析图
https://ae01.alicdn.com/kf/H60105ec189af4d4fb34aa0ce9d4320dbu.jpg

总结

没听懂没关系,多敲代码,读着代码就懂了

生活中的类和对象

  • 类是事物的统称,是一个抽象的概念
  • 对象是事物的表现,是具体的,独一无二的

Java中的类和对象

  • 类是对象的抽象,具有公共的特征和行为,对象是类的具体实现,具有唯一的特征和行为

基础数据类型与类和对象

  • 类就是一种自定义的数据类型,由类名,属性和方法构成
  • 对象就是一种数据类型的数据,由对象名,属性和方法构成

类和对象的定义和使用

  • 格式和规范,一定要按照标准

注意

大写开头的都是类
小写开头的都是变量
带()的都是方法
最后修改:2021 年 01 月 24 日 12 : 35 PM
如果觉得此文章有用,请随意打赏