On java 8 笔记——第三章 万物皆对象

对象操纵

创建一个String 引用,用于保存单词或语句,这里我们只创建了一个 String 对象的引用。

String s;

通常更安全的做法是:创建一个引用的同时进行初始化,例如:

String s = "asdf";

对象创建

“引用”用来创建“对象”,在Java中,我们通常使用new 操作符来创建一个新对象。
new关键字代表:创建一个新的对象实例,例如前面的代码也可以这样写:

String s = new String("asdf");

数据存储

Java确定了每种基本类型的内存占用大小。

基本类型有自己对应的包装类型,如果你希望在堆内存里表示基本类型的数据,就需要用到它们的包装类。代码示例:

char c = 'x';
Character ch = new Character(c);

或者你也可以使用下面的形式:

Character ch = new Character('x');

基本类型自动转换成包装类型(自动装箱)

Character ch = 'x';

相对的,包装类型转化为基本类型(自动拆箱):

char c = ch;

类的创建

类型:
通常在 class 关键字的后面的紧跟类的的名称。如下代码示例:

class ATypeName {
 // 这里是类的内部
}

在上例中,我们引入了一个新的类型,尽管这个类里只有一行注释。但是我们一样可以通过 new 关键字来创建一个这种类型的对象

ATypeName a = new ATypename();

字段:
当我们创建好一个类的时候,我们可以往里面存放两个类型的元素:方法(method)字段(field)
类的字段(field)可以是基本类型,也可以是引用类型
如果类的字段是对某个对象的引用,那么必须要初始化该引用将其关联到一个实际的对象上(通过之前介绍的创建对象的方法)。
下面是一个具有某些字段的类的代码示例:

class DataOnly {
    int i;
    double d;
    boolean b;
}

我们可以通过下面的代码来创建它的一个对象:

DataOnly data = new DataOnly();

我们必须通过这个对象的引用来指定字段值:

	data.i = 47;
    data.d = 1.1;
    data.b = false;

方法使用

在许多语言(如 C 和 C++)中,使用术语 函数 (function) 用来命名子程序。在 Java 中,我们使用术语 方法(method) 来表示“做某事的方式”。
在 Java 中,方法决定对象能接收哪些消息。方法的基本组成部分包括名称、参数、返回类型、方法体。格式如:

[返回类型] [方法名](/* 参数列表 */){
// 方法体
}

返回类型
方法的返回类型表明了当你调用它时会返回的结果类型。
我们可以像下面这样调用一个对象的方法:

[对象引用].[方法名](参数1, 参数2, 参数3);

若方法不带参数,例如一个对象引用 a 的方法 f 不带参数并返回 int 型结果,我们可以如下表示:

int x = a.f();

参数列表
例如代码:

int storage(String s) {
    return s.length() * 2;
}

此方法计算并返回某个字符串所占的字节数。参数 s 的类型为 String 。调用 length() 方法,它是一个 String 方法,返回字符串中的字符数。
如果我们不想方法返回数据,则可以通过给方法标识 void 来表明这是一个无需返回值的方法。 代码示例:

boolean flag() { 
    return true; 
}

double naturalLogBase() { 
    return 2.718; 
}

void nothing() {
     return;
}

void nothing2() {

}

第三个和第四个一样,return仅仅起到了退出方法,可以省略。

static关键字

通常只有在使用 new 创建那个类的对象后,数据存储空间才被分配,

  1. 有时你只想为特定字段(注:也称为属性、域)分配一个共享存储空间,而不去考虑究竟要创建多少对象,甚至根本就不创建对象。
  2. 创建一个与此类的任何对象无关的方法。也就是说,即使没有创建对象,也能调用该方法。

static 关键字(从 C++ 采用)就符合上述两点要求。
我们可以在类的字段或方法前添加 static 关键字来表示这是一个静态字段静态方法。 代码示例:

class StaticTest {
    static int i = 47;
}

现在,即使你创建了两个 StaticTest 对象,但是静态变量 i 仍只占一份存储空间。两个对象都会共享相同的变量 i。 代码示例:

StaticTest st1 = new StaticTest();
StaticTest st2 = new StaticTest();

引用静态变量有两种方法。

  1. st2.i
  2. 通过类名直接引用它,这种方式对于非静态成员则不可行:StaticTest.i++

使用类名直接引用静态变量首选方法,因为它强调了变量的静态属性。

编码风格

  • 要求类名的首字母大写。
  • 如果类名是由多个单词构成的,则每个单词的首字母都应大写(不采用下划线来分隔)例如:
class AllTheColorsOfTheRainbow {
    // ...
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值