编程语言
首页 > 编程语言> > Java一切皆对象

Java一切皆对象

作者:互联网

文章目录


基于《Java编程思想》( Thinking in Java Fourth Edition)整理,记录学习所获。阅读《Java编程思想》需要有一定编程基础,最好提前了解过一些有关C++编程的知识。


前言

尽管Java是基于C++的,但相比之下,Java是一种更“纯粹”的面向对象程序设计语言。
C++和Java都是混合/杂合型语言。杂合型语言允许多种编程风格;C++之所以成为一种杂合型语言主要是因为它支持与C语言的向后兼容,使C++在某些方面显得过于复杂。

用引用操作对象

在Java中,一切都被视为对象,操纵的标识符实际上是对象的一个引用(reference),Java中的引用在语法上更接近C++的引用而不是指针。创建一个String引用语法如下:

String str;

必须由你创建所有对象

上面所创建的只是引用,并不是对象,也就是说引用并不一定要和对象关联,可以独立存在,但在使用它的时候必须与特定对象关联,通常使用new操作符来实现这一目的:

String str;
str = new String();

或者我们也可以将上述两条语句合在一起写:

Sring str = new String();

存储到什么地方

特例:基本类型

如int、char、double等基本数据类型不用new操作符创建变量,而是创建一个并非是引用的自动变量,这个变量直接存储“值”,并置于堆栈中,因此更加有效。Java每种基本类型所占存储空间是固定的,不像其他大多数程序设计语言那样随机器硬件架构的变化而变化
基本类型具有的包装器类,使得可以在堆中创建一个非基本对象,用来表示对应的基本类型。
Java提供了两个用于高精度计算的类:BigInteger和BigDecimal,二者没有对应的基本类型。

Java中的数组

Java确保数组会被初始化,而且不能在它的范围之外被访问。当创建一个数组对象时,实际上创建了一个数组引用,并且每个引用都会被初始化为null,在使用之前,必须为其指定一个对象。创建的基本数组初始化全部置零。

永远不需要销毁的对象

Java有一个垃圾回收器,用来监视new创建的所有对象,并辨别那些不会再被引用的对象。随后吧,释放这些对象的内存空间,以便供其他新的对象使用。

创建新的数据类型

class关键字声明类:

class ATypeName{
    /* Class body goes here */
}

字段和方法

引用一个对象的成员的方法为:在对象引用的名称后紧接着一个句点(.),然后再接着是对象内部的成员名称:

objectReference.member
objectReference1.objectReference2.member //objectReference2是objectReference1的成员

基本成员默认值

若类的某个成员是基本数据,即使没有初始化,Java也会确保它获得一个默认值(C++不具有此特性)。对于局部变量,Java则不会初始化为默认值,在使用局部变量前必须初始化,否则编译器会报错。

方法、参数和返回值

方法名和参数列表(它们合起来被称为“方法签名”)唯一的标识出某个方法。
Java中传递的参数是引用。

构建一个Java程序

名字可见性

为了给一个类库生成不会与其他名字混淆的名字,Java设计者采用反过来使用自己的Internet域名,可以保证独一无二,句点就用来代表子目录的划分。

运用其他构件

Java使用关键字import指示编译器导入一个包,例如:

import java.util.ArrayList;
import java.util.*;   //使用通配符导入导入多个类

java.lang会自动导入到所有源程序中。

static关键字

当遇到两种情形:

通过static关键字可以满足这两方面需求,当声明一个事物是static时,就意味着这个域或方法不会与包含它的那个类的任何对象实例关联在一起。引用static变量有两种方法,可以通过一个对象去定位它,如:ObjectName.member,或者也可以通过类名直接引用,如ClassName.member。
量有两种方法,可以通过一个对象去定位它,如:ObjectName.member,或者也可以通过类名直接引用,如ClassName.member。
当static作用于某个字段时,会改变数据的创建方式(一个static字段对每个类来说都只有一分存储空间,而非static字段则是对每个对象有一个存储空间),但是static作用于方法,差别却没有那么大,static方法的一个重要用法就是在不创建任何对象的前提下就可以去调用它。

标签:Java,一切,对象,创建,C++,static,引用
来源: https://blog.csdn.net/qq_44947550/article/details/118606646