JAVA学习笔记六.对象和类

为对象定义类

类为对象定义属性和行为。对象代表现实世界中可以明确标识的一个实体。

  • 一个对象的状态或属性是由具有当前值的数据域来表示的。
  • 一个对象的行为是由方法定义的。

类是一个模板,用来定义对象的数据域是什么以及方法是做什么的,一个对象是类的一个实例。可以从一个类中创建多个实例。创建实例的过程称为实例化。

类提供了构造方法,调用它创建一个新对象。

包含main方法的类称为主类。

可以把多个类放在同一个文件中,但是文件中只能有一个类是公共类,此外公共类必须与文件同名。源代码中的每个类被编译成一个.class文件。

使用构造方法构造对象

构造方法的三个特殊性:

  • 必须具备和所在类相同的名字
  • 没有返回值类型,没有void
  • 在创建一个对象时使用new操作符调用,其作用是初始化对象

通常,一个类会提供一个没有参数的构造方法,称为无参构造方法。

一个类可以不定义构造方法,在这种情况下,类中隐含定义一个方法体为空的无参构造方法,这是默认构造方法。

通过引用变量访问对象

对象的数据和方法可以运用点操作符通过对象的引用变量进行范文。

新创建的对象在内存中被分配空间,通过引用变量访问。

引用变量和引用类型

对象是通过对象引用变量来访问的,该变量包含对对象的引用。类是一种引用类型,该类类型的变量都可以引用该类的一个实例。

引用数据域和null值

如果一个引用类型的数据域没有引用任何对象,那么这个数据域就有一个特殊的Java值null。当调用值为null的引用变量上的方法使会发生NullPointerException运行错误。故需要确保先将对象引用赋值给变量。

基本类型变量和引用类型变量的区别

每个变量都代表一个存储值的内存位置。

  • 基本类型变量:对应内存所存储的值是基本类型值。
  • 引用类型变量:对应内存所存储的值是一个引用,是对象的存储地址。

Random类

创建一个Random对象时,必须指定一个种子或者使用默认的种子。种子是一个用于初始化随机数字生成器的数字。如果种子相同,则产生相同的数列。

静态变量、常量和方法

静态变量:也称为类变量,被类中的所有对象共享。将变量值存储在一个公共的内存地址,如果某一个对象修改了静态变量的值,那么同一个类的所有对象都会受影响。一般声明为 final static

静态方法:不能访问类中的实例成员,无需创建类的实例就可以调用静态方法。

实例变量是绑定到类的某个特定实例的,不能被同一个类的不同对象所共享。

静态方法和静态数据可以通过引用变量或它们的类名调用,不需要实例创建。使用类名.方法名的方式调用静态方法,使用类名.静态变量的方式访问静态变量。

可见性修饰符

可见性修饰符可以用于确定一个类以及它的成员的可见性。

public:表示可以被任何其他的类访问,可以用在类及类的成员上

没有使用可见性修饰符:默认可以被同一个包中的任何一个类访问,称作包内访问

private:限定方法和数据域只能在自己的类中被访问,只可以应用在类的成员上

在局部变量上使用public和private会导致编译错误。

数据域封装

使用private将数据域声明为私有的,这称为数据域封装。

对象是存储在堆中的。

不可变对象和类

不可变对象:一旦创建其内容就不能再改变。其类被称为不可变类。

如果一个类是不可变的,那么其所有的数据域必须保持私有,并且对于任何一个数据域没有修改器,且没有一个返回指向可变数据域的引用的访问器方法。

如果一个局部变量和一个类变量具有相同的名字,局部变量优先。

this引用

this:指向调用本身的引用名。可以用this引用对象的实例成员。在引用隐藏数据域以及调用一个重载的构造方法的时候,this引用是必须的。

使用this引用隐藏数据域

使用thid调用构造方法

this可以调用同一个类的另一个构造方法。

在构造方法中,语句this(参数列表)应该在任何其他可执行语句之前出现。如果一个类有多个构造方法,尽可能使用this(参数列表)实现。通常,无参数或者参数少的构造方法可以用this(参数列表)调用参数多的构造方法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值