【大数据】学习笔记 1 Java SE 第5章 面向对象基础(上) 5.1 面向对象编程
【大数据】学习笔记
文章目录
- 【大数据】学习笔记
- 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是一种计算机程序设计语言。所有的计算机程序一直都是围绕着两件事在进行的,程序设计就是用某种语言编写代码来完成这两件事,所以程序设计语言又称为编程语言(编写程序的语言)。
如何表示和存储数据
- 基本数据类型的常量和变量:表示和存储一个个独立的数据
- 对象:表示和存储与某个具体事物相关的多个数据(例如:某个学生的姓名、年龄、联系方式等)
- 数据结构:表示和存储一组对象,数据结构有数组、链表、栈、队列、散列表、二叉树、堆…
基于这些数据都有什么操作行为,其实就是实现什么功能
- 数据的输入和输出
- 基于一个或两个数据的操作:赋值运算、算术运算、比较运算、逻辑运算等
- 基于一组数据的操作:统计分析、查找最大值、查找元素、排序、遍历等
【2】程序设计方法
C语言是一种面向过程的程序设计语言,因为C语言是在面向过程思想的指引下去设计、开发计算机程序的。
Java语言是一种面向对象的程序设计语言,因为Java语言是在面向对象思想的指引下去设计、开发计算机程序的。
其中面向对象和面向过程都是一种编程思想,基于不同的思想会产生不同的程序设计方法。
面向过程的程序设计思想(Process-Oriented Programming),简称POP
- 关注的焦点是过程:过程就是操作数据的步骤,如果某个过程的实现代码在很多地方重复出现,那么就可以把这个过程抽象为一个函数,这样就可以大大简化冗余代码,也便于维护。
- 代码结构:以函数为组织单位。独立于函数之外的数据称为全局数据,在函数内部的称为局部数据。
面向对象的程序设计思想( Object Oriented Programming),简称OOP
- 关注的焦点是类:面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,用类来表示。某个事物的一个具体个体称为实例或对象。
- 代码结构:以类为组织单位。每种事物都具备自己的属性(即表示和存储数据,在类中用成员变量表示)和行为/功能(即操作数据,在类中用成员方法表示)。
5.1.2 类和对象
【1】什么是类
类是一类具有相同特性的事物的抽象描述,是一组相关属性和行为的集合。
- 属性:就是该事物的状态信息。
- 行为:就是在你这个程序中,该状态信息要做什么操作,或者基于事物的状态能做什么。
【2】什么是对象
对象是一类事物的一个具体个体(对象并不是找个女朋友)。即对象是类的一个实例,必然具备该类事物的属性和行为。
例如:做一个养宠物的小游戏
类:人、猫、狗等
/**
* @Projectname: BigDataStudy
* @Classname: Dog
* @Author: Ding Jiaxiong
* @Date:2023/4/24 15:13
*/
public class Dog {
String type; //种类
String nickname; //昵称
int energy; //能量
final int MAX_ENERGY = 10000;
//吃东西
void eat() {
if (energy < MAX_ENERGY) {
energy += 10;
}
}
}
/**
* @Projectname: BigDataStudy
* @Classname: Person
* @Author: Ding Jiaxiong
* @Date:2023/4/24 15:14
*/
public class Person {
String name;
char gender;
Dog dog;
//喂宠物
void feed() {
dog.eat();
}
}
/**
* @Projectname: BigDataStudy
* @Classname: Game
* @Author: Ding Jiaxiong
* @Date:2023/4/24 15:14
*/
public class Game {
public static void main(String[] args) {
Person p = new Person();
p.name = "张三";
p.gender = '男';
p.dog = new Dog();
p.dog.type = "哈巴狗";
p.dog.nickname = "小白";
for (int i = 1; i <= 5; i++) {
p.feed();
}
System.out.println(p.dog.energy);
}
}
【3】类和对象的关系
- 类是对一类事物的描述,是抽象的。
- 对象是一类事物的实例,是具体的。
- 类是对象的模板,对象是类的实体。
5.1.3 如何定义类
【1】类的定义格式
关键字:class
(小写)
【修饰符】 class 类名{
}
类的定义格式举例:
public class Student{
}
【2】对象的创建
关键字:new
new 类名()//也称为匿名对象
//给创建的对象命名
//或者说,把创建的对象用一个引用数据类型的变量保存起来,这样就可以反复使用这个对象了
类名 对象名 = new 类名();
那么,对象名中存储的是什么呢?答:对象地址
/**
* @Projectname: BigDataStudy
* @Classname: TestStudent
* @Author: Ding Jiaxiong
* @Date:2023/4/24 15:17
*/
public class TestStudent {
public static void main(String[] args) {
System.out.println(new Student());//Student@7852e922
Student stu = new Student();
System.out.println(stu);//Student@4e25154f
int[] arr = new int[5];
System.out.println(arr);//[I@70dea4e
}
}
可以发现学生对象和数组对象类似,直接打印对象名和数组名都是显示“类型@对象的hashCode值”,所以说类、数组都是引用数据类型,引用数据类型的变量中存储的是对象的地址,或者说指向堆中对象的首地址。
那么像“Student@4e25154f”是对象的地址吗?不是,因为Java是对程序员隐藏内存地址的,不暴露内存地址信息,所以打印对象时不直接显示内存地址,而是JVM帮你调用了对象的toString方法,将对象的基本信息转换为字符串并返回,默认toString方法返回的是“对象的运行时类型@对象的hashCode值的十六进制值”,程序员可以自己改写toString方法的代码(后面会讲如何改写)。
还没有评论,来说两句吧...