关闭

Java编程思想(二)--一切都是对象

标签: Java
249人阅读 评论(0) 收藏 举报
分类:

我们如何操作对象:

我们通过引用来控制对象。就好比遥控器控制电视。引用就是遥控器,对象就是电视机。我们操纵对象,实际上是操作引用。我们并不直接操作电视机,而是操作遥控器从而控制电视机。

此外,就算没有电视机(对象),我们可以创建遥控器(引用)。只不过这时候遥控器(引用)不能控制任何电视机(对象)。如果此时要使用遥控器(引用),则编译器会报错。

你可以这样创建一个引用:String s;

引用如何和对象连接:

利用new关键字来新建一个对象。

String s = new String("a");

对象一般存储在什么地方:

1、寄存器:速度最快,因为位于处理器内部,但是数量有限。

2、堆栈:位于通用RAM中,速度仅次于寄存器。编译器必须知道确切地生命周期,以便上下移动堆栈指针。引用就放在堆栈中。

3、堆:通用内存池(RAM中),需要更多时间,编译器不需要知道确切的生命周期。对象就放在堆中。

4、常量存储:直接放在程序代码内部。

5、非RAM存储:数据在程序之外。分为流对象和持久化对象。

流对象:对象转化为字节流,发送个另一台机器。

持久化对象:对象被存放在磁盘上。

 

类的特例:基本类型

为什么要有基本类型:

有一系列类型需要经常使用,如果橡其他对象一样放在堆中创建,则需要耗费大量时间。所以直接创建这些基本类型的值,并存放在堆栈中。

基本类型的一些特性:

类型

占用存储空间

表数范围

默认值

包装器类型

Boolean

--

true/false

false

Boolean

char

2字节(Unicode 编码)

字符

‘\u0000’(null)

Character

byte

1字节

-128~127

(byte)0

Byte

short

2字节

-2^15~2^15-1

(short)0

Short

int

4字节

-2^31~2^31-1

0

Integer

long

8字节

-2^63~2^63-1

0

Long

float

4字节

-3.403E38~3.403E38

0.0f

Float

double

8字节

-1.798E308~1.798E308

0.0d

Double

void

--

--

--

Void

所有类型都有正负号,没有无符号的类型

所有类型都有包装器类型。

除了表格中的类型,还有BigInteger和BigDecimal两个包装器类型,分别代表int和float,专门用于高精度计算。

 

数组:一组对象的引用

Java会确保数组会被初始化,而且不能再范围之外访问。

当我们创建了一个对象数组的时候,我们实际上是在创建一个引用数组,初始时,每个引用都指向null。如果试图使用还是null的引用,Java就会报错。

 

变量的生命周期:作用域

作用域决定了变量的生命周期。在Java中作用域由花括号{}决定,即变量只会存在于{}内部。

{

int y = 1;

{

int x = 2;

}

int z = y + x;//编译出错,因为变量x只存在于{}中。

}

对象的生命周期:

开始:

当我们创建了一个引用(变量),并把它指向一个new出来的对象时,这个对象的生命周期就开始了。然而在引用(变量)的作用域结束时,引用(变量)消失,对象仍然存在。

结束:

只要还有引用指向该对象,该对象就不会消失。只有没有引用指向该对象时,该对象才会消失。然而真正是什么时候消失是由垃圾收集器控制的。

也就是说你只需要创建对象,而不需要关心什么时候消灭对象,即释放内存。

 

什么决定了对象的类型(特性):类

类由两个方面组成:变量和方法(没有也行)

class A {}

A a = new A();

这样也可以定义一个类,但这样的类没什么意义。

字段(变量):

当对象在定义一个字段(不是方法内的变量)时,Java会给它一个默认值。如果是方法内的变量,则不会自动初始化。

方法:

参数:传递给方法的信息

返回值:方法返回的信息,利用return关键字进行返回,可以返回void(空值)。

方法名:方法调用时所用的名称

方法体:具体实现

ReturnType methodName(/* Argument list */) {

/* Method body */

}

方法调用必须通过对象来调用。

int x = a.f();//a为对象,f()为该对象内的方法,x为返回类型。

 

类名冲突:

一个程序往往由多个人编写,一个人编写的类中可能与其他人编写的类名相同。那么程序该如何辨别这两个类。

打包:

Java使用了包机制,即使用域名的,即使反过来使用域名。例如baidu.com就可以使用com.baidu.util。一般包名都是小写。

package com.baidu.util; //这句话一定要放在程序第一行

如何在程序中引用其他包:

使用import关键字

import com.baidu.util.*; //引用这个包中所有的类,这种方式比较常用。

或 import com.baidu.util.A; //只引用这个包中的类A

 

static:

为什么要static:

一般来说,只有在堆中创建一个类之后才能访问类中的字段和方法。但有时候我们并不想创建对象,只想调用一个变量或方法。

其次,每个相同类型的对象都有自己的字段或方法,而有时候我们会想要这些相同类型的对象共用一个变量或方法。

static变量的使用:

直接用类名 如:A.f();

也可通过对象调用:a.f();

 

注释:

//:只注释当前行

/* */:注释中间内容

/**  */:用于产生注释文档

必须放在所要注释内容的前面

可以内含HTML代码,但不要放入<h1>或<hr>

只能对public和protect的变量和方法进行文档注释

每一行开头的星号和第一个空格会被忽略。

标签:

@see:引用其他类,生成一个See Also

{@link package.class#member label}:使用label而不是SeeAlso

{@docRoot}:产生到文档根目录的绝对路径

{@inheritDoc}:从这个类最直接的基类中继承相关文档到当前文档的文档注释中

@version:版本信息

@author:作者信息

@since:指定代码最早使用的版本

@param:参数

@return:返回值

@deprecated:表示该方法已抛弃

@throws:异常

 

编码风格:

类名首字母要大写,如果由多个单词组成,则每个单词都要大写

其他的首字母小写,其他一样。

0
0
查看评论

Java编程思想--第二章 一切都是对象

2.1用引用操纵对象 一切都看作对象,但操作的标识符实际是对象的一个引用(reference);例如遥控器(引用)来操纵电视机(对象),实际操控的遥控器(引用),再由遥控器来调控电视机(对象)。如果在房间四处走动,同时又想调控电视机,那么只需携带遥控器(引用),而不是电视机(对象)。没有电视机,遥...
  • lyt_7cs1dn9
  • lyt_7cs1dn9
  • 2016-11-28 17:07
  • 514

Java编程思想(一) —— 一切都是对象及内存分配

2014-7-27 16:59:08 《Java编程思想》 作者:Bruce Eckel 虽然这本书是经典,但是对于一个入门java,又没有其他编程经验的人来讲,实在难以看懂,前前后后看了三遍。 什么都不懂的时候硬着头皮看,没看完,看了前面忘了后面,中间很多看不懂...
  • iaiti
  • iaiti
  • 2014-08-01 16:05
  • 11274

【Java编程思想】二、一切都是对象

Thinking in Java 尽管Java是基于C++的,但是相比之下,Java是一种更“纯粹”的面向对象设计语言。 2.1  用引用操纵对象   一切都被视为对象, 因此可采用单一固定的语法。尽管一切都被看作对象,但操纵的标识符实际上是对象的一个“引用”。 Java里的“引用”...
  • Jack_Owen
  • Jack_Owen
  • 2014-10-08 15:38
  • 338

《JAVA编程思想》日志(二)-----一切都是对象

第二章.一切都是对象 在java中你所做的全部工作就是定义类,产生那些类的对象,以及发送消息给这些对象。 2.1用引用操纵对象:对于String s,创建了一个引用s,是String类型的,但是此时s并没有指向对象,必须还要创建对象, 2.2使用new关键字创建对象,String s =ne...
  • AQ_cainiao_AQ
  • AQ_cainiao_AQ
  • 2016-02-25 21:58
  • 389

java编程思想读书笔记二:一切都是对象

一切都是对象对象基本类型基本类型所占存储空间大小固定,所以具有可移植性高精度数字BigInteger、BigDecimal没有对于基本类型数组当创建一个数组对象时,实际上就是创建了一个引用数组,自动初始化为null。销毁对象作用域C/C++中小作用域将较大作用域隐藏起来的做法,在java里是不允许的...
  • zpwust
  • zpwust
  • 2017-05-25 12:59
  • 152

JAVA编程思想笔记--一切都是对象

2.1 用引用操纵对象2.2 必须由你创建所有对象 一旦创建了一个引用,就希望它能与一个新的对象相关联,通常用new操作符来实现这一目的 2.2.1 存储在什么地方2.3 永远不需要销毁对象2.4 创建新的数据类型:类2.5 方法,参数和返回值2.6 构建一个Java程序
  • u012360634
  • u012360634
  • 2017-02-23 15:17
  • 267

Java编程思想之一切都是对象

    2.2.3 Java中的数组    当创建一个数组对象时,实际上就是创建了一个引用数组,并且每个引用都会自动被初始化为一个特定值,该值拥有自己的关键字null。一旦java看到null,就知道这个引用还没有指向某个对象。在使用任何引...
  • canba
  • canba
  • 2011-03-20 21:59
  • 1280

JAVA编程思想(一)一切都是对象

2.1、一切都是对象     JAVA思想:     ①面向对象:JAVA假设只进行面向对象的程序设计(无面向过程)     ②面向对象的编程:1、定义类    2、产生类的对象    3、...
  • ywjjj
  • ywjjj
  • 2017-04-07 22:38
  • 105

2一切都是对象-Java编程思想

一切都是对象。 创建引用和与对象关联。String s=new String("Hello World");new 创建对象。 数据存储位置:1寄存器,位于处理器内部,最快的存储区,数量有限。不由程序员控制,C、C++语言允许程序员建议寄存器的分配方式。2堆栈,位于ram(随...
  • wanpro
  • wanpro
  • 2016-09-02 20:27
  • 235

Java编程思想读书笔记--一切都是对象

一切都是对象 Java是一种更纯粹的面向对象程序设计语言。 用引用操作对象 尽管一切都看做对象,但是操纵的标识符实际上是对象的一个“引用”(reference)。也就是说,你拥有一个引用,并不一定需要一个对象与它关联。 String s;存储到什么地方 程序运行时,对象是怎么进行放置安排...
  • wangtongxue123456
  • wangtongxue123456
  • 2017-03-23 23:36
  • 183
    个人资料
    • 访问:8325次
    • 积分:320
    • 等级:
    • 排名:千里之外
    • 原创:23篇
    • 转载:8篇
    • 译文:0篇
    • 评论:0条