2.6 构建java程序
2.6.1 名字的可见性(包)
如何区分两个名字,并防止两个名字互相冲突呢?java中通过使用反转自已的域名,来做为包的名字,并且整个包都是以
小写字母为标准。java的这种特殊机制意味自所有的文件自动存在于自已的命名空间中。一个文件里的每一个类都获得独一
无二的标识符(一个文件里的类名必须唯一)。
2.6.2 使用其它组件(使用其它类)
一旦要在自已类中使用已定义的类,必须明确的告诉编译器如何找到这个类。
如果要调在的类在同一个源文件中,只需简单使用这类即可——即使它直到文件的后面仍然未定义。java很好地消除了
“向前引用”的问题,所以不需要关心这些事。
如果要调用的类不在同一个文件,你或许认为编译器足够“聪明”,可以自行找到,但事实并非如此。为了准确告诉
编译器我们希望使用的类是什么,必须使用import关键字。大多时候,我们直接采用来自标准java库的准件,它们是与编
译器配套提供的。import 的作用是指示编译器导入一个“包”。
可以像下面这样导入一个类
import java.io.File;
然而io包中,包含了大量的类,如果我们希望同时使用几个,而不想明确的声明它们,我们可以使用*通配符,
import java.io.*;
需要导入一系列类时,一般是采用这种方式。应尽量避够一个个地导入类。
2.6.3 static 关键字
通常我们在创建类时,会指出类的外观与行为。除非使用new创建一个类的对象,否则不会得到任何东西。只有执行
了new之后,才会为那个对象分配存储空间,并可以通那个对象调用实例的方法与属性。
但也有两种特殊情况。一种情况是只想使用一个存储区域来保存一个特定的数据——无论要创建多少个对象,甚至不创
建对象。另一种情况是,我们需要一个特殊的方法,它与类的任何对象都没有关联。也就是说,即使不创建对象,也能调用
的一个方法。为此,可以使用static关键字来实现上述情况。
一旦把一个东西设为static ,数据或方法就不会与该类的任何对象实例联系在一起。所以即使未创建那个类的对象,仍
然可以使用static数据或方法。而对于非static的数据和方法,必须先创建那个对象,然后使用对象的引用来访问数据、调
用方法。为了将数据或成员变成static,可以像下面这样:
public class StaticTest {
static int a = 15;
}
如果新建两个StaticTest对象
StaticTest t1 = new StaticTest ();
StaticTest t2 = new StaticTest ();
则无论是t1.a或t2.a,它们的值都是15.因为它们引用的是同一个内存区域。
有两种方法可以引用静态数据和方法。
第一种是通过 对象名 + 方法名()/变量名
t1.a
第二种是通过 类名 + 方法名()/变量名
StaticTest.a
第二种方法是推荐的作法,因为它强调了这个方法或变量的“静态性”本质。
对于static方法来说,一项重要的用途就是帮助我们在不声明一个对象的前提下,使用static方法。这一点是至关重要的
特别是定义程序运行入口方法main的时候。
和其它任何方法一样,static方法也能创建自已类型的对象。所以经常将static 方法作为“领头羊”使,用它来创建本对
象的一系列实例。
分享到:
相关推荐
在Java编程语言中,"一切都是对象"这一概念是其核心特性之一。Java的设计目标是成为一种纯面向对象的语言,它在C++的基础上进一步优化,降低了复杂性,特别是在面向对象编程方面。与C++不同,Java不支持C语言那样的...
在Java中,一切都被视为对象,这意味着无论处理何种类型的数据,都可以使用相同的语法来进行操作。当我们提到“操纵对象”时,实际上是在操纵该对象的引用。引用类似于遥控器与电视机的关系:我们通过遥控器(引用)...
在JavaScript中,一切都是对象,包括基本类型(如字符串、数字、布尔值)在某些场景下也会被当作对象处理。下面将详细讲解这些知识点: 1. **变量**: - JavaScript中的变量使用`var`、`let`或`const`关键字声明。...
在JavaScript语言中,一切都是对象。因此,任何可以使用JavaScript原生语法表示的数据结构都可以用JSON表示。然而,JSON比JavaScript更简单、更纯粹,仅包括最常用的数据类型:数值、字符串、数组、对象(键值对)、...
在Java中,由于一切都是对象的引用,组合通常基于对象引用进行。组合的优势在于它保持了封装性,因为被包含对象的内部实现对外部是不可见的,实现了“黑盒”复用,增强了系统的灵活性和可扩展性。然而,组合可能导致...
一切皆对象是 Python 中的一个重要概念,类是对象,类的实例也是对象,模块是对象,函数也是对象。所有的一切都是对象。 在 Python 中,类的定义使用 class 语句,具体步骤是:在写完关键字 class 之后,就跟上类的...
对象是键值对的集合,可以通过点运算符或方括号运算符来访问其属性。原型链、构造函数、实例化和原型对象的概念是JavaScript对象模型的重要组成部分,手册会详细阐述这些内容。 在函数部分,手册可能涵盖函数的定义...
* Java 是一门面向对象的语言,它定义一切都是对象面向对象 * Java 学习的重要性在于它可以提高软件开发的效率和代码重用 知识点二:面向对象编程思想 * 面向对象编程思想是 Java 程序设计的核心思想 * 面向对象...
然而,与数字或字符串不同,对象是键值对的集合,可以通过属性(keys)和方法(functions)来访问和操作它们。 2. **构造函数**: 构造函数是创建对象的特殊函数,通常用于初始化新创建的对象。使用`new`关键字...
在JavaScript中,几乎一切都是对象,包括函数。这种特性使得JavaScript成为一门非常灵活的语言。 ##### 1. 数据类型 JavaScript中的数据类型可以分为两大类:基本数据类型和复杂数据类型(对象)。 - **基本数据...
Java语言是面向对象编程的典型代表,它的设计哲学便是"一切都是对象"。 **对象、类与实体** 1. **对象**:对象是面向对象编程中的基本单位,它代表了现实世界中一个具体的实体或者概念。在Java中,对象是类的实例...
JavaScript对象是JS编程中的核心概念,它是一种数据结构,用于存储和组织数据。在JavaScript中,一切都是对象,包括基本类型如字符串、数字和布尔值,它们都有对应的包装对象。理解JavaScript对象模型对于深入学习和...
对象是数据和处理这些数据的方法的封装体。在Objective-C中,一切皆为对象,即使是基本类型如整型或字符型也会被视为对象。OOP的核心理念包括: - **封装**:隐藏对象的内部状态,只通过公开的接口与外部交互。 - *...
组合可以通过引用或值实现,但Java中一切都是对象的引用。 **组合的优点**: 1. 容器类仅通过被包含对象的接口与其交互,保持了封装性。 2. 实现细节对外部隐藏,实现了“黑盒”复用。 3. 更好的可扩展性,因为对象...
在面向对象的世界里,一切都是对象。面向对象有三大特性:封装、继承和多态。 1. **封装**:隐藏对象的属性和实现细节,仅对外提供公共访问方式。这样做的好处是可以自由修改对象内部结构而不影响其他对象。 2. **...
在面向对象的世界里,一切都是对象,每个对象都有自己的属性和行为。 #### 二、类与对象 **类**:类是对象的模板或蓝图,定义了一组相似对象的共同特征和行为。它是抽象的,不能直接创建实例。 **对象**:对象是...
而在Python中,一切都是对象,类是通过`class`关键字定义,继承是通过冒号(`:`)表示,多态则是语言内置的特性。 通过学习面向对象程序设计,开发者可以构建更模块化、可维护的代码,更容易应对复杂的问题。PDG这...
在Qt中,一切都是对象,这是其设计哲学之一。Qt对象模型基于C++的面向对象特性,提供了一套完整的事件处理机制、信号与槽(Signals & Slots)通信机制、属性系统和元对象系统。信号与槽是Qt的核心特性,允许对象间...