java对象和类

Posted saonian450

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java对象和类相关的知识,希望对你有一定的参考价值。

java对象和类的学习

为对象定义类

面向对象程序设计就是使用对象进行程序设计,对象代表现实世界中可以明确标识的一个实体。

  • 一个对象的状态(state也称特征或者属性)是由具有当前值的数据域来表示的。
  • 一个对象的行为(behavior,也称动作)是由方法定义的。调用对象的一个方法就是要求对象完成一个动作。

使用一个通用类来定义同一类型的对象,类是一个模板、蓝本或者说是合约,用来定义对象的数据域是什么以及方法是做什么的。一个对象就是类的一个实例,可以从一个类中创建多个实例,创建实例的过程叫做实例化。

java类使用变量定义数据域,使用方法定义动作。除此之外,类还提供了一种称为构造方法的特殊类型的方法,调用它可以创建一个新对象。构造方法本身是可以完成任何动作的,但是设计构造方法是为了完成初始化动作。

含有main方法的类称为主类。
可以把两个类放在同一个文件中,但是文件中只能有一个类是公共类,公共类必须与文件名一样。当文件中的类进行编译时,会产生两个.class文件

使用构造方法构造对象

构造方法在使用new操作符创建对象的时候被调用。
构造方法是一种特殊的方法,它有以下三个特征:

  1. 构造方法必须具备和所在类相同的名字。
  2. 构造方法没有返回值类型,甚至连void也没有。
  3. 构造方法是在创建一个对象使用new操作符时调用,构造方法的作用是初始化对象。
    构造方法也可以重载

通常,一个类会提供一个没有参数的构造方法,这样的构造方法称为无参构造方法。
一个类可以不定义构造方法,在这中情况下,类中隐含定义一个方法为空的无参构造方法,这个构造方法称为默认构造方法,当且仅当类中没有明确定义任何构造方法时才会自动提供它。

通过引用变量访问对象

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

引用变量和引用类型

对象是通过对象引用变量来访问的,该变量包含对对象的引用。

//对象引用变量的声明
ClassName objectRefVar;

本质上来说,一个类是一个程序员定义的类型,类是一种引用类型,这意味着该类类型的变量都可以引用该类的一个实例。

//创建一个对象
new ClassName();
//声明对象引用变量、创建对象、将对象的引用赋值给对象引用变量。
ClassName objectRefVar = new ClassNmae();
//objectRefVar中放的是对ClassName对象的一个引用。

访问对象的数据和方法

在面向对象编程中,对象成员可以引用对象的数据域和方法。在创建一个对象之后,它的数据和方法可以使用点操作符(.)来访问和调用,该操作符也称为对象成员访问操作符。

objecrRefVar.dataField//引用对象的数据域
objecrRefVar.method(arguments)//调用对象的方法

通常,我们创建一个对象,然后将它赋值给一个变量,之后就可以使用这个变量来引用对象。有时候,一个对象在创建之后并不需要引用。这中情况下,就可以创建一个对象,而并不讲=将它明确赋值给一个变量。
数据域也可以是引用型的

class Student{
    String name;
}

NullPointerException 是一种常见的运行时错误,当调用值为 null 的引用变量上 的方法时会发生此类异常。
引用类型数据域的默认值是null,数值类型数据域的默认值为0,Boolean类型数据域的false,char类型数据域的默认值是‘u0000‘,java没有给方法中的局部变量赋默认值。

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

每个变量都代表一个存储值的内存位置。
基本类型变量,对应内存所存储的值是基本类型值。
引用类型变量,对应内存所存储的值是一个引用,是对象的存储地址。

将一个变量赋值给另一个变量时
基本类型变量,就是讲一个变量的实际值赋给另一个变量
引用类型变量,就是讲一个变量的引用赋给另一个变量,两个变量的值是同一个引用,修改一个变量中的引用,另一个也会修改。

java库中的类

Date类

  1. Date()为当前时间创建一个Date对象
  2. toString()返回一个代表日期和时间的字符串表示
  3. getTime()返回从格林威治时间1970年1月1至今流逝的毫秒数

?

Random类

java.util.Random 类,他它可以产生一个int、long、double、float和Boolean型值。

  1. Random()以当前时间作为种子创建一个Random对象
  2. Random(seed:long)以一个特定值作为种子创建一个Random对象
  3. nextInt()返回一个随机的int值
  4. netxInt(n:int)返回一个0到n(不含n)之间的随机int类型的值
  5. nextLong()返回一个随机long值
  6. nextDouble()返回一个0.0到1.0之间的随机double类型的值
  7. nextFloat()返回一个0.0F到1.0F之间的随机float类型的值
  8. nextBoolean()返回一个随机的Boolean值
    返回的值都不含右边界

相同的种子产生相同的伪随机数列,不同的种子产生不同的伪随机数列,采用不同的种子可以增大随机性。

Point2

  1. Point2D(x:double,y:double)用给定的x和y来创建一个Point2D对象
  2. distance(x,y):double返回该点到给定点(x,y)之间的距离
  3. distance(p:Point2D):double返回该点到给定点p之间的距离
  4. getX():double返回该点的x坐标
  5. getY():double返回该点的y坐标
  6. toString():String返回该点的字符串表示
import javafx.geometry.Point2D;

静态变量

如果想让一个类的所有实例共享数据,就要使用静态变量,也称为类变量,静态变量将变量值存储在一个公共的内存地址。
无须创建类的实例就可以调用静态方法。
声明静态方法和静态变量时加static。
类中的常量是被该类的所有对象共享的,因此,常量声明时要加final static。

实例数据和实例方法是在实例创建之后才能调用的。
静态数据和静态方法是可以通过引用变量或者他们的类名来调用。

实例方法可以调用实例方法和静态方法,访问实例数据域和静态数据域。
静态方法可以调用静态方法,访问静态数据域。
静态方法不能调用实例方法,不能访问实例数据域,因为静态方法和静态数据域不属于某个特定的对象。

如果一个变量或者方法依赖于类的某个几天实例,那么应该将它定义为实例变量或实例方法。

可见性修饰符

可见性修饰符可以用于确定一个类以及它的成员的可见性。
可以在类、方法和数据域前使用public修饰符,表示它们可以被任何其他的类访问,如果没有使用可见性修饰符,那么默认类。方法和数据域是可以被同一个包中的任何一个类访问,这称为包私有或者包内访问。

包可以用来组织类。

package packageName;

在这行语句之前不能有注释和空白。

private修饰符

private修饰符限定方法和数据域只能在它自己的类中被访问。

以上是关于java对象和类的主要内容,如果未能解决你的问题,请参考以下文章

JAVA 对象和类

Java学习小笔记——对象和类

代码笔记Java基础:Java的方法和类

Java 对象和类

synchronize——对象锁和类锁

对象和类