Java编程原理-2.一切都是对象
对象
Java的三个关键字在类的内部设定边界:
Public: 表示紧随其后的元素对任何人都是可用的
Private: 表示出了类型创建者和类型的内部方法之外任何人都不能访问的元素
Protected:与private的差别仅在与继承的类可以访问 protected成员,不能访问private成员
对象存储的地方
寄存器: 最快的存储区,处理器内部
堆栈: 位于RAM(随机访问存储器),通过堆栈指针获得直接支持,下移分配新内存,上移释放内存。Java必须知道生命周期
堆: 通用的内存池(也位于RAM),不需要知道数据在堆里存活多久
常量存储: 直接存放在程序代码内部
非RAM存储: 完全存放于数据外,可以不受任何程序控制
基本类型
new将对象的值直接存储在堆栈中
基本类型 | 大小 | 最小值 | 最大值 | 包装器类型 |
---|---|---|---|---|
boolean | - | - | - | Boolean |
Char | 16 bits | Unicode o | Unicode |
Character |
byte | 8 bits | -128 | 127 | Byte |
short | 16 bits | Short | ||
int | 32 bits | Interger | ||
long | 64 bits | Long | ||
float | 32 bits | IEEE754 | IEEE754 | Float |
double | 64 bits | IEEE754 | IEEE754 | Double |
void | - | - | - | Void |
boolean类型占用的空间大小没有明确指定,因为只能定义为True和Fals
基本类型具有的包装器类可以在堆中创建一个非基本对象,用来表示对应的基本类型
char c = 'x'
Character ch = new Character(c)
等同
Character ch= new Character('x')
方法,参数和返回值
方法的基本组成包括名称,参数,返回值和方法体,下面是他的基本形式:
ReturnType methodName(/*Argumrnt list*/){/*Method body*/}
通过对象调用方法objectName.methodName(arg1,arg2,arg3)
方法f()不带任何参数,返回类型是int,a为对象,可以通过它调用f()
Int x =a.f()
Java标准类库
import java.util.*
Static 关键字
static可以满足两个方面,一是职位特定领域分配单一空间,二是即使没有对象也可以调用这个方法
//生成Static字段,并初始化
class StaticTest{
static int i = 47;
}
//创建两个StaticTest对象,StaticTest.i也只有一份存储空间,两个对象共享同一个i. stl.1和sti.2指向同一存储空间,所以具有相同的值48
StaticTest st1 = new StaticTest();
StaticTest st2 = new StaticTest();
//或通过类名直接引用,对于非静态成员不行
StaticTest.i++
定义静态方法与定义静态变量的方式相似
class Incrementable{
static void increment() {StaticTest.i++; }
}
//通过对象调用increment()
Incrementable sf = new Incrementable();
sf.increment();
//因为increment()是静态方法,所以可以通过类直接调用
Incrementable.increment();
注释和嵌入式文档
注释有两种方法一是以/*
开头和以*/
结尾
另一种是以//
起头直到末句
javadoc是用于提取注释的工具,输出是HTML文件,可以像在其他web文档中运用HTML,所有javacode命令只能在/**
中出现结束于*/
javacode只能为public和protected成员进行文档注释,private和包内可访问成员的注释会被忽略掉
标签 | 作用 |
---|---|
@see | 引用其他类 |
@link package | 与@see极为相似,只是用于行内 |
@docRoot | 产生到文档根目录的相对路径 |
@inheritDoc | 从当前类的最直接的基勒种集成相关文档到文档注释中 |
@version | 任何适合版本说明的重要信息 |
@author | @author author-information |
@since | 允许指定程序代码最早使用的版本 |
@param | @param parameter-name description |
@throws | 异常 |
@deprecated | 用于指出一些旧特性已由新特性取代 |
第一个JAVA程序
// HelloData.java
import java.util.*;
/** The first Thinking in Java example program.
* Display a string and today's date
* @suthor Bruce Eckel
* @suthor www.MindView.net
* @version 4.0
*/
public class HelloData{
/** Entrv point to class &application
* @para args array of string arguments
* @throws exceptions No exceptions thrown
* /
public static void main(String[] args){
System.out.println("Hello. it's:");
System.out.println(new Date());
}
}