随笔 - 5,  文章 - 0,  评论 - 0,  阅读 - 71

对象与类

面向对象程序设计,简称OOP,Java是完全面向对象的,所以必须熟悉OOP。OOP将数据放在第一位,再考虑操作数据结构的算法。

  • 类是构造对象的模板或者蓝图。类构造对象的过程称为创建类的示例
  • 对象中的数据称为实例域,操作数据的过程称为方法
  • 实现封装的关键在于不能让类中的方法直接访问其它类的实例域,程序仅能通过对象的方法与对象数据进行交互
  • 所有的类都继承于Object

对象

  • 对象的三个主要特性
    • 对象的行为,可以对对象世家那些操作或者哪些方法
    • 对象的状态,当施加那些方法时,对象如何响应
    • 对象标识,如何辨别具有相同行为与状态的不同对象

类之间的关系

  • 依赖,一个类操作另一个类。应当减少依赖关系,降低耦合度最小
  • 聚合,一个类的对象包含着另一个类对象
  • 继承,一个类扩展另一个类,不但拥有被扩展类的方法还有特殊的方法

对象与对象变量

构造器

  • 用来创建并初始化对象,并且构造器的名字应该与类名一致
  • 构造对象代码示例
	Date day = new Date(); //创造了一个Date类的对象
  1. 一个对象变量并没有包含一个对象,而是仅仅引用一个对象
  2. new操作符的返回值也是一个引用
  3. 所有Java对象都存储在堆中

自定义类

  • 定义代码示例
	class People{
		//类的私有变量
		private int i = 0;
		private int b = 0;
		//定义无参构造器
		public People(){
		
		}
		//定义类中方法
		public void Sum(){
			
		
		}
	}
  • 构造器总是伴随着new操作符的执行被调用
  • 构造器应该与类同名
  • 每个类可以有一个以上的构造器
  • 构造器可以有0个、1个或者多个参数
  • 构造器没有返回值
  • 使用this关键字来标识隐式参数

封装的优点

  • 可以改变内部实现,除了该类的方法之外,不会影响其他代码
  • 更改器方法可以执行错误检查,然而直接对域进行赋值将不会进行这些处理

静态域与静态方法

  • 如果使用static关键字来修饰变量,这个类的所有实例都共享这个变量

使用静态方法的两种情况

  1. 一个方法不需要访问对象状态
  2. 一个方法只需访问类的静态域
  • 工厂方法--->静态方法的另一种用途

方法调用

  • Java程序设计语言对对象采用的不是引用调用。
  • 实际上,对象引用的是按值传递的
  • 一个方法不能修改一个基本数据类型的参数
  • 一个方法可以改变一个对象参数的状态
  • 一个方法不能让对象参数引用一个新的对象

重载

  • 如果多个方法有一样的名字,但是参数数量不同或者参数的类型不同,就会产生重载

默认初始化

  • 如果没有显示的赋值,就会自动赋为默认值
  • 数值为0、布尔为false、对象为null

this关键字不仅可以引用隐式参数,也可以调用同类的另一个构造器

  • 使用包的主要原因是保证类名的唯一性
  • 需要那个包下的类,按需导入即可

类设计技巧

  • 一定要保证数据私有
  • 一定要对数据初始化
  • 不要在类中使用过多的基本类型
  • 不是所有的域都需要独立的域访问器和域更改器(getXxx和setXxx)
  • 将职责过多的类进行分解
  • 类名和方法名要能体现它们的职责(见名知意)
  • 优先使用不可变的类
posted on   ZmBoy  阅读(9)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示