Chiriri's blog Chiriri's blog
首页
  • Java

    • JavaSE
    • JavaEE
    • 设计模式
  • Python

    • Python
    • Python模块
    • 机器学习
  • Golang

    • Golang
    • gRPC
  • 服务器

    • Linux
    • MySQL
    • NoSQL
    • Kubernetes
  • 项目

    • 传智健康
    • 畅购商城
  • Hadoop生态

    • Hadoop
    • Zookeeper
    • Hive
    • Flume
    • Kafka
    • Azkaban
    • Hbase
    • Scala
    • Spark
    • Flink
  • 大数据项目

    • 离线数仓
  • 青训营

    • 第四届青训营
  • HTML

    • HTML
    • JavaScript
  • Vue

    • Vue2
    • TypeScript
    • Vue3
    • Uni-APP
  • 数据结构与算法
  • C语言
  • 考研数据结构
  • 计算机组成原理
  • 计算机操作系统
  • Java基础

    • Java基础
    • Java集合
    • JUC
    • JVM
  • 框架

    • Spring
    • Dubbo
    • Spring Cloud
  • 数据库

    • MySQL
    • Redis
    • Elasticesearch
  • 消息队列

    • RabbitMQ
    • RocketMQ
  • 408

    • 计算机网络
    • 操作系统
    • 算法
  • 分类
  • 标签
  • 归档
  • 导航站
GitHub (opens new window)

Iekr

苦逼后端开发
首页
  • Java

    • JavaSE
    • JavaEE
    • 设计模式
  • Python

    • Python
    • Python模块
    • 机器学习
  • Golang

    • Golang
    • gRPC
  • 服务器

    • Linux
    • MySQL
    • NoSQL
    • Kubernetes
  • 项目

    • 传智健康
    • 畅购商城
  • Hadoop生态

    • Hadoop
    • Zookeeper
    • Hive
    • Flume
    • Kafka
    • Azkaban
    • Hbase
    • Scala
    • Spark
    • Flink
  • 大数据项目

    • 离线数仓
  • 青训营

    • 第四届青训营
  • HTML

    • HTML
    • JavaScript
  • Vue

    • Vue2
    • TypeScript
    • Vue3
    • Uni-APP
  • 数据结构与算法
  • C语言
  • 考研数据结构
  • 计算机组成原理
  • 计算机操作系统
  • Java基础

    • Java基础
    • Java集合
    • JUC
    • JVM
  • 框架

    • Spring
    • Dubbo
    • Spring Cloud
  • 数据库

    • MySQL
    • Redis
    • Elasticesearch
  • 消息队列

    • RabbitMQ
    • RocketMQ
  • 408

    • 计算机网络
    • 操作系统
    • 算法
  • 分类
  • 标签
  • 归档
  • 导航站
GitHub (opens new window)
  • JavaSE

    • Java简介
    • 基础语法
    • 数据类型
    • 变量
    • 运算符
    • 输入输出
    • 流程控制
    • 循环语句
    • idea中的辅助键
    • 数组
    • 方法
    • 面向对象基础
      • 类和对象
      • 类的定义
      • 对象的使用
      • 对象内存图
        • 单个对象 new 一个内存地址(独有的) 指向类
        • 多个对象 第一个对象new一个内存地址
        • 多个对象指向相同内存地址
      • 成员变量和局部变量
      • 封装
      • this关键字使用
      • 封装概念
      • 构造方法
      • 标准类
    • 字符串
    • ArrayList集合
    • 继承
    • 修饰符
    • 多态
    • 抽象
    • 接口
    • 类名作为形参和返回值
    • 内部类
    • Api
    • 异常
    • 集合
    • 泛型
    • Set集合和比较器
    • 树
    • 哈希
    • 可变参数
    • 创建不可变的集合
    • Stream流
    • 方法引用
    • File
    • 多线程
    • 多线程高级
    • 网络编程
    • 类加载器
    • 反射
    • XML
    • 枚举
    • 注解
    • 单元测试
    • 日志
    • HTTP协议
    • Servlet
    • 请求对象
    • 响应对象
    • Cookie
    • Session
    • JSP
    • Listener
    • JDBC
  • JavaEE

  • Linux

  • MySQL

  • NoSQL

  • Python

  • Python模块

  • 机器学习

  • 设计模式

  • 传智健康

  • 畅购商城

  • 博客项目

  • JVM

  • JUC

  • Golang

  • Kubernetes

  • 硅谷课堂

  • C

  • 源码

  • 神领物流

  • RocketMQ

  • 短链平台

  • 后端
  • JavaSE
Iekr
2021-05-09
目录

面向对象基础

# 面向对象基础

# 类和对象

  1. 面向对象 指计算机关注的目标

  2. 类

    类是对象的数据类型

    类是具有相同属性和行为的一组对象的集合

  3. 对象的属性

    对象具有的各种特征,每个属性大都拥有特定的值

  4. 对象的行为

    对象能够执行的操作

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

# 类的定义

类是 java 程序的基本组成单位

public class 类名{

	//成员变量

	变量1的数据类型 变量1;

	变量2的数据类型 变量2;

	//成员方法

	方法1;

}
1
2
3
4
5
6
7
8
9
10
11
12
13

# 对象的使用

创建对象

类名 对象名 = new 类名 ();

ObjectTest01 P =new ObjectTest01();
1

使用对象

  1. 使用成员变量

    格式:对象名。变量名

    p.barand;
    
    1
  2. 使用成员方法

    格式:对象名。方法名

    p.call();
    
    1

# 对象内存图

# 单个对象 new 一个内存地址(独有的) 指向类

成员变量 和 成员方法都是独用的不与其他发生冲突,只是指向调用

成员方法 对象调用执行完后 会从栈内存消失(清空)

# 多个对象 第一个对象 new 一个内存地址

第二个对象 new 一个内存地址

两个对象分别指向不同的内存地址但方法和代码相同,互相之前无影响

如还有对象申请新的内存还是无影响,各走各的

# 多个对象指向相同内存地址

第一个对象 new 一个内存地址

将第一个对象的地址赋值给第二个对象

两个对象指向的内存地址都是相同的,因为第二个对象的内存是由第一个对象申请的内存赋值的

第一个对象 申请新的内存地址

ObjectTest01 P =new ObjectTest01();
1

第二个对象 将第一个对象申请的内存地址赋值给第二个对象使用

ObjectTest01 P2 = p;
1

# 成员变量和局部变量

image-20210509204442710

# 封装

private 关键字

是一个权限修饰符,可以修饰成员 (成员变量和成员方法)

作用是保护成员不被别的类使用,被 private 修饰的成员只在本类中才能访问

如需要类外部使用则需要定义 java 内部方法 get/set 方法

set 被修饰的变量名 首字母要大写如 setAge

格式:

set 是传递参数

pulic void setXxx(数据类型 变量){

	

}
1
2
3
4
5

get 是返回参数

get 被修饰的变量名 首字母要大写如 getAge

pulic 返回值的类型 getXxx (){

		return 被修饰的变量名

}
1
2
3
4
5

类外直接调用 set 和 get 分别设置和获取值

# this 关键字使用

用 this 修饰的变量用于指代成员变量

如在类方法中 参数和成员变量名称一致则系统认为代码指代的为方法中的局部变量(形参),需要加 this 修饰指代为成员变量

this 解决局部变量隐藏成员变量

方法被哪个对象调用了,this 就代表哪个对象

# 封装概念

封装是面向对象三大特征之一(封装,继承,多态)

封装的原则

将类的某些信息隐藏在类内部,不允许外部直接访问,而是通过类提供的方法来实现对隐藏信息的操作和访问

成员变量 private,提供对应的 getXxx ()/setXxx () 方法

封装的好处

通过方法来控制成员变量的操作,提高了代码的安全性

把代码用方法进行封装,提高了代码的复用性。

# 构造方法

构造方法是一种特殊的方法

作用:创建对象 主要是完成对象数据的初始化

public class 类名{

		修饰符 类名(参数){

	} 

}
1
2
3
4
5
6
7

注意事项

构造方法的创建

当类中没有创建无参构造方法系统默认的自动生成无参构造方法

如果定义了构造方法,系统将不再提供默认的构造方法

pubilc 类名(参数){

}
1
2
3

构造方法的重载

如果定义了带参数的构造方法,还要使用无参构造方法,必须再写一个无参数构造方法,因为系统不再提供默认的无参数构造方法

建议无论是否使用,都手工书写无参构造方法

# 标准类

  1. 成员变量

    使用 private 修饰

  2. 构造方法

    提供一个无参构造方法

    提供一个带多个参数的构造方法

  3. 成员方法

    提供每一个成员变量对应的 setXxx ()/getXxx ()

    提供一个显示对象信息的 show ()

  4. 创建对象并为其成员变量赋值的两种方式

    无参构造方法创建对象后使用 setXxx () 赋值

    使用带参构造方法直接创建带有属性值的对象

编辑 (opens new window)
上次更新: 2023/12/06, 01:31:48
方法
字符串

← 方法 字符串→

最近更新
01
k8s
06-06
02
进程与线程
03-04
03
计算机操作系统概述
02-26
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Iekr | Blog
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式