捡起java(3)对象基础和简单数据对象

声明一个变量来引用对象:

  类型名  引用变量 = new 构造器(构造器的参数)

  为了声明一个变量来引用对象,你可以使用类或者接口的名字作为变量的类型 声明并没有创建新对象。在对该引用变量赋值前,该引用为空,称为空引用(null)

实例化对象:

    new操作符通过为新对象分配内存来实例化一个类 new操作符需要一个后缀参数,即构造器的一个调用 new操作符返回一个对它所创建对象的引用,通常该引用被赋值给具有适当类型的引用变量 如果new操作符返回的引用没有被赋给任何变量,那么当new操作符所在的语句执行完后,将无法访问该对象

初始化对象:

构造器(Constructor):是一个用来创建对象的特殊方法,用来初始化对象的属性。 构造器的名字与类名相同 构造器没有返回值 构造器所包含的语句用来对所创建的对象进行初始化 没有参数的构造器称为“无参构造器” 每个Java类都至少有一个构造器,如果该类没有显式地声明任何构造器,系统会默认地为该类提供一个不包含任何语句的无参构造器

对象创建的实例:

Point origin_one = new Point(23, 94);

构造器的重载(Overload):

一个类可以包含多个构造器,这种情况成为构造器的重载 同一个类中的多个构造器通过参数的数目及类型的不同来区分

对象的使用:对象的使用有两种方式 操作或者检查它的变量 调用它的方法 要使用对象的实例成员,首先需要得到该对象的引用

实例成员与类成员:实例成员包括实例变量与实例方法 实例成员依赖于实例存在 同一个类的不同实例都拥有一份实例变量的拷贝,对某个实例的实例变量的操作不影响到其它实例 实例变量遵循对象的生命周期,随着对象的创建而创建,随着对象的消亡而消亡 必须通过实例的引用来调用实例方法 类成员包括类变量与类方法 类成员不依赖于实例存在 同一个类的不同实例共享同一个类变量,对类变量的改变会影响到所有实例 类变量的生存期不依赖于对象,其它类可以不用通过创建该类的实例,直接通过类名访问它们。同样,类方法也可以直接通过类名访问。

实例成员与类成员:

实例变量的引用:简单名称   当实例变量处在作用域内(即对象的类的代码内)   的时候 限定名称   objectReference.variableName   当实例变量处在作用域外时使用限定名称

关于变量访问的说明:建议不要通过其它对象或类直接操作对象的变量,可能引起无效值 理想情况下,类会提供一些方法,其他对象可以通过他们检查或修改变量,确保值有效,而且如果变量的类型和名称发生了变化,不会影响它的使用者 在某些情况下,可以允许对对象变量的直接访问,以使类更小更简单,也可使变量适用于更广泛范围; JAVA编程语言提供了一个访问控制机制,通过这种机制,类可以决定那些其它的类可以直接访问它的变量

调用对象的方法:使用限定名称来调用对象的方法     objectReference.methodName(argumentList);     或者     objectReference.methodName();

关于方法调用:方法被声明为public,就可以被任何其它的类所访问。有时,类需要限制对它的方法的访问 类可以使用与控制变量访问相同的机制来对它的方法进行访问控制

对象的清除:JAVA运行时环境在当对象不再被使用的时候清除它们,这个过程就是所谓的“垃圾收集”(garbage collection) Java的垃圾收集器自动扫描对象的动态内存区,对被引用的对象加标记,然后把没有引用的对象作为垃圾收集起来并释放。 垃圾收集器作为一个线程运行。当系统的内存用尽或程序中调用System.gc()要求进行垃圾收集时,垃圾收集线程与系统同步运行。否则垃圾收集器在系统空闲时异步地执行。

无用对象的判定:当某个对象不在被任何引用变量引用时,该对象是无用对象,将被清除。一般有如下两种情况:

finalize()方法:在对对象进行垃圾收集前,Java运行时系统会自动调用对象的finalize()方法来释放系统资源。 某些情况下,程序员可能需要实现该方法来释放不由垃圾收集器所控制的资源。但这种情况非常少见 finalize()方法是在Object中有缺省实现,在用户自定义的类中,它可以被覆盖,但一般在最后要调用父类的finalize()方法来清除对象所使用的所有资源

字符和字符串:Java API提供了三个处理字符数据的类: Character:这个类的实例可以容纳单一的字符数值。该类还定义了一些简洁的方法来操作或者检查单一字符数据。 String:这个类用于处理由多个字符组成的不可变数据。 StringBuffer:这个类用于存储和操作由多个字符组成的可变数据。

字符类(Character):字符类的对象包含单个字符值 当需要使用对象时,可以用字符对象替代原始的char类型的变量

字符类——构造器和方法:Character(char)-Character类唯一的构造器,它创建一个字符对象,其中包含由参数提供的值,一旦创建了Character对象,它包含的值就不能改变。 compareTo(Character)-这个实例方法比较两个字符对象包含的值,这个方法返回一个整数值,表示当前对象中的值是大于、等于还是小于参数所包含的值

字符类——构造器和方法:equals(Object)-这个实例方法比较当前对象包含的值与参数对象包含的值,如果两个对象包含的值相等,那么这个方法返回true toString()-这个实例方法将此对象转换为字符串 charValue()-这个实例方法以原始char值的形式返回此字符对象包含的值 isUpperCase()-这个实例方法判断一个原始char值是否是大写字母

字符类——例程:

字符类——类方法:

字符串和字符串缓冲区:Java平台提供两个类String和StringBuffer,它们用于存储和操作字符串-由多个字符组成的字符数据。 String类用于其值不能改变的字符串; StringBuffer类用于被修改的字符串,通常用来动态的构造字符数据。 字符串是常量,比字符串缓冲区更高效,而且字符串可以被共享。

字符串(String):使用字符串常量时,需要创建String对象,和其它对象不同,String对象可以通过简单赋值语句创建: String name = “Petter”; 此外,也可根据String类的构造函数创建String对象: String name = new String(“Petter”); 对于程序任何位置出现的双引号标记的字符串,系统都会自动创建一个String对象。 可通过String对象的方法对字符串进行操作

字符串——构造器:

String类用于其值不能改变的字符串

字符串缓冲区(StringBuffer):String对象表示的是不可更改的字符串对象,如果需要修改String对象所表示的内容,必须重新创建一个对象: String str = “Petter”; str = str + “ & Bob” + “ & Tom”; 当修改操作频繁,或字符串的值很大时,会额外分配大量内存 因此,Java语言引入了一个StringBuffer类,用来表示内容可以扩充和修改字符串对象

StringBuffer——构造器:

必须使用new操作符创建字符串缓冲区:

访问器方法:用于获取关于对象的信息的方法被称为访问器方法。 字符串和字符串缓冲区都可以使用的一个访问器方法就是length方法。 length方法返回字符串和字符串缓冲区中包含的字符数。

容量:在StringBuffer类中还有一个capacity()方法,它返回分配给这个字符串缓冲区的容量,而不是使用量。使用量会改变,但是容量始终是不变的。

通过索引得到字符:charAt()访问器方法,通过索引从字符串或者字符串缓冲区得到字符,索引值从零开始。

substring方法:如果要从字符串或者字符串缓冲区得到多个字符,可以使用substring方法。 String substring(int) String substring(int,int)

search:string类提供两个访问器方法,返回特定的字符或者子字符串在字符串中的位置。 indexOf()方法从字符串的开头查找; lastindexOf()方法从字符串的末尾查找; stringBuffer类不支持indexOf()和lastindexOf()方法。

search example:

数字类:

:

Number类及其子类主要用于处理数字 Number类的对象包含了原始类型的数值并且提供了一些有用的变量和方法,用于对数值进行处理

类型包装器类(Type-Wrapper class):数字类、Boolean、Character和void类统称为类型包装器类 在需要对象的地方,可将原始类型的值存储在类型包装器对象中 这些类定义了一些有用的变量,提供关于数据类型的一般信息 这些类还定义了一些有用的方法,用于将值转换为其他类型、转换为字符串等等 这些类用于反射,反射这种java机制允许程序收集关于JVM中任何对象或类的信息 此外,BigInteger和BigDecimal还扩展了原始数据类型

数组:数组是一个固定长度的结构,它存储多个相同类型的值 数组直接被JAVA语言所支持,所以没有一个数组类 数组的长度在数组创建的时候就已经确定。 数组元素就是数组中的一个数值,可以通过数组中的位置来访问它。

创建数组:声明一个引用变量来引用一个数组 格式:type[] 引用变量名               type 引用变量名[]  (允许但不推荐) 数组变量的声明并不创建数组 创建一个数组 使用new操作符显示地创建数组 格式:new elementType[arraySize] 数组初始化器 可以使用简写的语法创建并初始化数组: type[] 引用变量名 = { 数组元素值…};

使用数组:访问数组元素 引用变量名(数组名)[index] 得到数组大小 引用变量名(数组名).length

对象数组:数组元素可以是基本类型也可以是引用类型 当数组元素是引用类型时(也即数组元素为对象时需要注意:数组元素也必须要被创建和初始化

数组的数组:数组的数组可以看作是“数组引用”的数组 与对象数组一样,必须显示地在数组中创建子数组 子数组的长度并不相同

例:

复制数组:

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值