java核心技术之对象与类(学习笔记)

P101

构造器

•构造器与类同名
• 每个类可以有一个以上的构造器
• 构造器可以有0个、1个或1个以上的参数
• 构造器没有返回值
• 构造器总是伴随着new操作一起调用

创建对象

Test deadline = new Test()		//创建对象

理解的说,就是new Test()开辟一块空间,然后deadline拿到了地址的意思。进一步可以通过图理解。
在这里插入图片描述

  • 对象的set和get方法主要针对自身的属性。

静态域和静态方法

static:关键字,在java中可理解为:属于类且不属于类对象的变量和函数。

静态域

在这里插入图片描述

  • 如果有1000个Employee类的对象,则有1000个实例域id。但是,只有一个静态域
    nextId。

静态方法
  1. 静态方法建议使用类名来调用,而不是通过对象。例如,如果harry是一个Employee对象,通常使用Employee.getnextId( ),而不是harry.getNextId( )。
  2. 在下面两种情况下使用静态方法:
    • 一个方法不需要访问对象状态,其所需参数都是通过显式参数提供(例如:Math.pow) 。
    • 一个方法只需要访问类的静态域(例如:Employee.getNextId)

方法的参数

在这里插入图片描述在这里插入图片描述
可以看到,一个方法不可能修改一个基本数据类型的参数。而对象引用作为参数就不同了,可以很容易地利用下面这个方法实现将一个雇员的薪金提高两倍的操作:
在这里插入图片描述
具体的执行过程为:
1)x被初始化为harry值的拷贝,这里是一个对象的引用。
2)raiseSalary方法应用于这个对象引用。x和harry同时引用的那个Employee对象的薪金提高了200%。
3)方法结束后,参数变量x不再使用。当然,对象变量harry继续引用那个薪金增至3倍的雇员对象(如图4-7所示) 。
在这里插入图片描述
总结一下在Java程序设计语言中,方法参数的使用情况:
• 一个方法不能修改一个基本数据类型的参数(即数值型和布尔型) 。
• 一个方法可以改变一个对象参数的状态。
• 一个方法不能实现让对象参数引用一个新的对象。

构造器

仅当类没有提供任何构造器的时候,系统才会提供一个默认的构造器
下面是调用构造器的具体处理步骤:
1)所有数据域被初始化为默认值(0、false或null) 。
2)按照在类声明中出现的次序,依次执行所有域初始化语句和初始化块。
3)如果构造器第一行调用了第二个构造器,则执行第二个构造器主体。
4)执行这个构造器的主体。

静态域初始化

在这里插入图片描述

Import导入包

import语句不仅可以导入类,还增加了导入静态方法和静态域的功能。
在这里插入图片描述
警告:编译器在编译源文件的时候不检查目录结构。例如,假定有一个源文件开头有下
列语句:package com.mycompany;
即使这个源文件没有在子目录com/mycompany下,也可以进行编译。如果它不依赖于其
他包,就不会出现编译错误。但是,最终的程序将无法运行,这是因为虚拟机找不到类
文件。

类设计技巧

1)一定将数据设计为私有。
2)一定要对数据初始化.
3)不要在类中使用过多的基本数据类型。
4)不是所有的域都需要独立的域访问器和域更改器。
5)使用标准格式进行类的定义。

一定采用下面的顺序书写类的内容:
公有访问特性部分
包作用域访问特性部分
私有访问特性部分
在每一部分中,应该按照下列顺序列出:
实例方法
静态方法
实例域
静态域
毕竟,类的使用者对公有接口要比对私有的实现细节更感兴趣,并且对方法要比对数据更
感兴趣。

6)将职责过多的类进行分解。
7)类名和方法名要能够体现它们的职责。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值