重温经典《Thinking in java》第四版之第二章 一切都是对象(十二)

简介: 重温经典《Thinking in java》第四版之第二章 一切都是对象(十二)

2.6到2.9小节主要介绍构建我们的完整的可以运行起来的Java程序的方法,以及我们的Java程序的结构和风格是如何的。主要还是将语法的问题,不是我们实践课的第一个hello world程序demo。


2.6.1 名字可见性主要讲的是如何给我们的Java类起名字,这里面有一个包的概念,即我的类属于哪个包名下面。包可以理解为文件目录,同一个文件目录下不能有相同的类名,这就保证了类以及类中的函数的使用冲突问题,计算另一个目录下有一样名字的类,使用起来也会标识清楚。比如a.b.c.User和a.b.d.User。当然名字要起的有意义,包名要体现组织架构和功能的含义,类名也要能有见名知意。这个在真实的项目实践或者产品开发中会有开发规范约束。

2.6.2 运用其他构件,就是使用其他的类,直接举例说明:

importjava.util.ArrayList;

可以翻译成中文就是引入java.util包下的ArrayList类。如果要使用java.util包下其他的类,一个个引进来比较麻烦,可以使用通配符import java.util.*;

2.6.3 static关键字主要介绍了static关键字的作用。在一个类中,被static关键字修饰的数据成员或者方法,该数据成员和方法不需要创建出对象就可以被使用。还有一种更好理解的描述是,被static关键字修饰的数据成员或者方法,它是不属于对象的,是属于类自身的。用两个术语来表达就是类成员和类方法。

classStaticTest { 
staticinti=47; 
}

直接通过StaticTest.i去使用i变量。而且StaticTest.i在存储区域里只存一份,哪怕new处理再多的对象,他们使用的i还是同一个i。比如:

StaticTestst1=newStaticTest(); 
StaticTestst2=newStaticTest();

st1.i 和st2.i 共享同一个i,他们的值时相同的,都是47。可以通过StaticTest.i++去改变i的值为48,st1.i 和st2.i也都变为了48。以后在业务开发中一些全局的常量或者字典值的属性有时候就是通过static修饰的,全局独家一份。

classIncrementable { 
staticvoidincrement() { StaticTest.i++; } 
} 
Incrementable.increment();

演示了一下被static修饰的方法的使用。当然也可以通过对象的方式去调用,如下:

Incrementablesf=newIncrementable(); 
sf.increment();

有了上面一些关键字的铺垫下面就进入到了我们的2.7 你的第一个Java程序。直接上代码:

// HelloDate.java importjava.util.*; 
publicclassHelloDate { 
publicstaticvoidmain(String[] args) { 
System.out.println("Hello, it’s: "); 
System.out.println(newDate()); 
    } 
}

这个代码可以直接运行的,如何运行?安装jvm,找个集成开发工具比如idea,或者像我们当初通过javac命令行编译运行的方式,这些工具自己学习吧。

// HelloDate.java 代表单行注释

import java.util.*;代表导入要是有的类

public class HelloDate 定义一个类

public static void main(String[] args)代表这个类可以被直接执行,main方法是程序执行的主方法。

System.out.println("Hello, it’s: "); 就是打印输出一串字符串

System.out.println(new Date()); 把new Date()日期对象作为参数,就是打印输出当前日期。

下面直接进入到2.8 注释和嵌入式文档,刚刚也提到了//代表单行注释,那么多行注释呢?

/* This is a comment

* that continues

* across lines

*/

通过/**/即可实现多行注释。

Javadoc是java提供的根据注释来生成文档的工具,这个工具在输出一个库或者api给第三方开发者的时候很有帮助。几乎每个开源的框架或者库都通过javadoc输出了文档供开发者使用。这里面涉及到一些标签和HTML标签的使用,一方面是为了说明类或者函数的信息,一方面是为了美观我们的文档。

@author author-information 作者信息

@version version-information版本信息

@param parameter-name 参数信息

@return description 返回值信息

@throws fully-qualified-class-name description 异常信息

还有很多,可以参考这块专门的手册,需要使用哪个,按照规范使用即可。还可以使用如下HTML的写法美化我们的文档:

/**

* You can <em>even</em> insert a list:

* <ol>

* <li> Item one

* <li> Item two

* <li> Item three

* </ol>

*/

下面给一个例子来说明注释的使用:

//: object/HelloDate.java importjava.util.*; 
/** The first Thinking in Java example program. * Displays a string and today’s date. * @author Bruce Eckel * @author www.MindView.net * @version 4.0 */publicclassHelloDate { 
/** Entry point to class & application. * @param args array of string arguments * @throws exceptions No exceptions thrown */publicstaticvoidmain(String[] args) { 
System.out.println("Hello, it’s: "); 
System.out.println(newDate()); 
    } 
}

/* Output: (55% match)

Hello, it’s:

Wed Oct 05 14:39:36 MDT 2005

*/

目录
相关文章
|
3天前
|
存储 Java
Java对象是一种复杂的数据结构
【4月更文挑战第28天】Java对象是基于类的实例,包含属性和方法。类是对象的蓝图,实例化过程在堆内存中分配空间。对象属性存储各种数据,通过点号运算符访问,方法执行操作。Java提供内置对象如String、Integer,也可自定义对象以实现特定功能,如学生管理系统或电商网站。
7 1
|
6天前
|
设计模式 JavaScript Java
[设计模式Java实现附plantuml源码~行为型] 对象状态及其转换——状态模式
[设计模式Java实现附plantuml源码~行为型] 对象状态及其转换——状态模式
|
6天前
|
设计模式 存储 Java
[设计模式Java实现附plantuml源码~结构型]实现对象的复用——享元模式
[设计模式Java实现附plantuml源码~结构型]实现对象的复用——享元模式
|
6天前
|
设计模式 JavaScript Java
[设计模式Java实现附plantuml源码~结构型]对象的间接访问——代理模式
[设计模式Java实现附plantuml源码~结构型]对象的间接访问——代理模式
|
6天前
|
设计模式 JavaScript 前端开发
[设计模式Java实现附plantuml源码~创建型] 复杂对象的组装与创建——建造者模式
[设计模式Java实现附plantuml源码~创建型] 复杂对象的组装与创建——建造者模式
|
6天前
|
设计模式 Java Go
[设计模式Java实现附plantuml源码~创建型] 对象的克隆~原型模式
[设计模式Java实现附plantuml源码~创建型] 对象的克隆~原型模式
|
6天前
|
设计模式 安全 Java
[设计模式Java实现附plantuml源码~创建型] 确保对象的唯一性~单例模式
[设计模式Java实现附plantuml源码~创建型] 确保对象的唯一性~单例模式
|
8天前
|
Java
Java基础之对象的引用
Java基础之对象的引用
6 0
|
12天前
|
JSON Java Apache
干货文:如何在 Java 中制作对象的深层副本
干货文:如何在 Java 中制作对象的深层副本
24 1
|
12天前
|
Java
Java中如何克隆一个对象?
【4月更文挑战第13天】
15 0