【大数据】学习笔记 1 Java SE 第5章 面向对象基础(上) 5.1 面向对象编程

拼搏现实的明天。 2024-03-22 11:13 89阅读 0赞

【大数据】学习笔记

文章目录

    • 【大数据】学习笔记
      • 1 Java SE
        • 第5章 面向对象基础(上)
          • 5.1 面向对象编程
            • 5.1.1 面向对象编程思想概述
            • 5.1.2 类和对象
            • 5.1.3 如何定义类

在这里插入图片描述

1 Java SE

第5章 面向对象基础(上)
5.1 面向对象编程
5.1.1 面向对象编程思想概述

【1】编程语言概述

Java是一种计算机程序设计语言。所有的计算机程序一直都是围绕着两件事在进行的,程序设计就是用某种语言编写代码来完成这两件事,所以程序设计语言又称为编程语言(编写程序的语言)。

  1. 如何表示和存储数据

    • 基本数据类型的常量和变量:表示和存储一个个独立的数据
    • 对象:表示和存储与某个具体事物相关的多个数据(例如:某个学生的姓名、年龄、联系方式等)
    • 数据结构:表示和存储一组对象,数据结构有数组、链表、栈、队列、散列表、二叉树、堆…
  2. 基于这些数据都有什么操作行为,其实就是实现什么功能

    • 数据的输入和输出
    • 基于一个或两个数据的操作:赋值运算、算术运算、比较运算、逻辑运算等
    • 基于一组数据的操作:统计分析、查找最大值、查找元素、排序、遍历等

【2】程序设计方法

C语言是一种面向过程的程序设计语言,因为C语言是在面向过程思想的指引下去设计、开发计算机程序的。

Java语言是一种面向对象的程序设计语言,因为Java语言是在面向对象思想的指引下去设计、开发计算机程序的。

其中面向对象和面向过程都是一种编程思想,基于不同的思想会产生不同的程序设计方法。

  1. 面向过程的程序设计思想(Process-Oriented Programming),简称POP

    • 关注的焦点是过程:过程就是操作数据的步骤,如果某个过程的实现代码在很多地方重复出现,那么就可以把这个过程抽象为一个函数,这样就可以大大简化冗余代码,也便于维护。
    • 代码结构:以函数为组织单位。独立于函数之外的数据称为全局数据,在函数内部的称为局部数据。
  2. 面向对象的程序设计思想( Object Oriented Programming),简称OOP

    • 关注的焦点是类:面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,用类来表示。某个事物的一个具体个体称为实例或对象。
    • 代码结构:以类为组织单位。每种事物都具备自己的属性(即表示和存储数据,在类中用成员变量表示)和行为/功能(即操作数据,在类中用成员方法表示)。
5.1.2 类和对象

【1】什么是类

是一类具有相同特性的事物的抽象描述,是一组相关属性行为的集合。

  • 属性:就是该事物的状态信息。
  • 行为:就是在你这个程序中,该状态信息要做什么操作,或者基于事物的状态能做什么。

【2】什么是对象

对象是一类事物的一个具体个体(对象并不是找个女朋友)。即对象是类的一个实例,必然具备该类事物的属性和行为。

例如:做一个养宠物的小游戏

类:人、猫、狗等

  1. /**
  2. * @Projectname: BigDataStudy
  3. * @Classname: Dog
  4. * @Author: Ding Jiaxiong
  5. * @Date:2023/4/24 15:13
  6. */
  7. public class Dog {
  8. String type; //种类
  9. String nickname; //昵称
  10. int energy; //能量
  11. final int MAX_ENERGY = 10000;
  12. //吃东西
  13. void eat() {
  14. if (energy < MAX_ENERGY) {
  15. energy += 10;
  16. }
  17. }
  18. }
  19. /**
  20. * @Projectname: BigDataStudy
  21. * @Classname: Person
  22. * @Author: Ding Jiaxiong
  23. * @Date:2023/4/24 15:14
  24. */
  25. public class Person {
  26. String name;
  27. char gender;
  28. Dog dog;
  29. //喂宠物
  30. void feed() {
  31. dog.eat();
  32. }
  33. }
  34. /**
  35. * @Projectname: BigDataStudy
  36. * @Classname: Game
  37. * @Author: Ding Jiaxiong
  38. * @Date:2023/4/24 15:14
  39. */
  40. public class Game {
  41. public static void main(String[] args) {
  42. Person p = new Person();
  43. p.name = "张三";
  44. p.gender = '男';
  45. p.dog = new Dog();
  46. p.dog.type = "哈巴狗";
  47. p.dog.nickname = "小白";
  48. for (int i = 1; i <= 5; i++) {
  49. p.feed();
  50. }
  51. System.out.println(p.dog.energy);
  52. }
  53. }

在这里插入图片描述

【3】类和对象的关系

  • 类是对一类事物的描述,是抽象的
  • 对象是一类事物的实例,是具体的
  • 类是对象的模板,对象是类的实体

在这里插入图片描述

5.1.3 如何定义类

【1】类的定义格式

关键字:class(小写)

  1. 【修饰符】 class 类名{
  2. }

类的定义格式举例:

  1. public class Student{
  2. }

【2】对象的创建

关键字:new

  1. new 类名()//也称为匿名对象
  2. //给创建的对象命名
  3. //或者说,把创建的对象用一个引用数据类型的变量保存起来,这样就可以反复使用这个对象了
  4. 类名 对象名 = new 类名();

那么,对象名中存储的是什么呢?答:对象地址

  1. /**
  2. * @Projectname: BigDataStudy
  3. * @Classname: TestStudent
  4. * @Author: Ding Jiaxiong
  5. * @Date:2023/4/24 15:17
  6. */
  7. public class TestStudent {
  8. public static void main(String[] args) {
  9. System.out.println(new Student());//Student@7852e922
  10. Student stu = new Student();
  11. System.out.println(stu);//Student@4e25154f
  12. int[] arr = new int[5];
  13. System.out.println(arr);//[I@70dea4e
  14. }
  15. }

在这里插入图片描述

可以发现学生对象和数组对象类似,直接打印对象名和数组名都是显示“类型@对象的hashCode值”,所以说类、数组都是引用数据类型,引用数据类型的变量中存储的是对象的地址,或者说指向堆中对象的首地址。

那么像“Student@4e25154f”是对象的地址吗?不是,因为Java是对程序员隐藏内存地址的,不暴露内存地址信息,所以打印对象时不直接显示内存地址,而是JVM帮你调用了对象的toString方法,将对象的基本信息转换为字符串并返回,默认toString方法返回的是“对象的运行时类型@对象的hashCode值的十六进制值”,程序员可以自己改写toString方法的代码(后面会讲如何改写)。

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,89人围观)

还没有评论,来说两句吧...

相关阅读