NotionNext
NotionNext
编程爱好者
/互联网从业者
/知识分享博主
认知决定态度,态度决定选择,选择决定人生

Java面向对象基础知识

NotionNext - 2023-4-10 - Technical / Java / 后端
发布于:2023-4-10|最后更新: 2023-8-29|
type
status
date
slug
summary
tags
category
icon
password

面向对象 Object Oriented

  • 面向对象编程OOP:Object Oriented Programming
  • 面向对象设计OOD:Object Oriented Design
  • 面向对象OOT:Object Oriented Technology

什么是对象?

  • 现实中真实世界的物体就是对象
  • 我们要把真实世界中的对象通过编程语言映射的计算机世界里面

对象的具有两大特征 :状态和行为

  • 状态:对象的状态是指对象所拥有的所有属性或者数据,比如大小、颜色等等。状态可以改变,也可以保持不变。
  • 行为:对象的行为是指对象所能进行的动作或者操作,比如打开文件、保存文件等等。通过执行行为,对象可以改变自己的状态或者影响其他对象的状态。

什么是类?

  • 类是创建单个对象的蓝图(blueprint)
  • 类就是用来创建对象的
  • 所有的类都会围绕着一个最基本的构建模块OOP,不同组件弄不同的类,好划分,好维护,好更改
  • 一个 .java文件中可以有很多类,有且仅有一个public class, 并且类名要和文件名相同

如何写一个类?

  • 类的名字
  • 状态:用变量表示存储
  • 行为:用方法公开表达行为

如何创建一个对象实例?

什么是构造器(Constructor)?

  • 构造器是用来初始化一个对象的
  • 一个类至少有一个构造器,可以有多个构造器
  • 构造器的名字必须和类名完全一样
  • 构造器可以视为特殊方法,没有返回值
  • 如果没有定义任何构造器,该类会自动生成一个默认的无参构造器
  • 如果一个类定义了构造器并且这些构造器都有参数。那么不会生成默认无参构造器
  • 不要把一些业务逻辑的处理放到构造器里面

如何定义一个构造器?

什么是包 Package

包是用来组织和管理一系列类和接口的命名空间
  • 命名空间 namespace, 命名空间的本质就是文件夹
  • 把功能相似或相关的类或接口组织在同一个包中
  • 在不同的包里可以用一样的名字
  • 包有访问权限

什么是重载(Overload)

  • 只体现在方法上
    • 方法重载
    • 构造器重载
  • 方法名字一样,但参数列表不同
    • 重点:只关注类型

什么是常量Constant?

  • 定义常量:用关键字final来定义一个常量
  • 常量被初始化后就不能再修改
  • 常量命名一般用全部大写字母表示
  • 在类中定义常量一般和static一起使用

static关键字

  • static属性和方法属于类,生命周期也和类相同
  • static成员变量只有一份
  • static属性/方法被该类所有对象实例共享使用
  • static方法不能调用非 static 方法
  • 调用方法
    • 属性:className.field
    • 方法:className.method
  • static 代码块 — 也属于类

Import关键字 — 导入类

  • 要使用其他包的类,需要import
  • Java默认导入java.lang包下的所有类
  • 在一个类里面如何使用同名类
    • 用package + className来表示
  • 如何导入 static 相关属性和方法

访问控制符

Java 语言提供了四种访问控制符,主要用于控制其他类是否可以访问某一类中的属性和方法,从而实现数据封装。
四种访问控制符的权限大小(由大到小)为:
  • public 公共访问权限
    • 使用关键字 public进行权限控制
    • 使用 public 声明的属性和方法能被所有类访问
  • protected 继承访问权限
    • 使用关键字 protected 进行权限控制
    • protected 权限可以被本包中的其他类和其他包中的子类访问
  • default (默认) 包访问权限
    • 无关键字
    • 声明属性或方法时,如果没有使用任何的权限声明,则使用 default 权限
    • 默认权限可以被本包中的其它类访问,但无法被其他包中的类访问
  • private 私有访问权限
    • 使用关键字 private 进行权限控制
    • 使用 private 声明的属性和方法只能在本类中被访问
它们的可见范围如图所示:
notion image
  • 访问控制的最佳实践
 
 
 
Java简单内存模型Java引用类型之数组和字符串