《Head First Java》20200903读书笔记

tech2023-07-04  102

P82

《Head First Java》20200903读书笔记

P82

GoodDog.java

package GoodDog; class GoodDog { private int size; public int getSize() { return size; } public void setSize(int s) { size = s; } void bark() { if(size > 60) { System.out.println("Wooof!Woof!"); } else if (size > 14) { System.out.println("Ruff!Ruff!"); } else { System.out.println("Yip!Yip!"); } } }

GoodDogTestDrive.java

```java package GoodDog; class GoodDogTestDrive { public static void main (String[] args) { GoodDog one = new GoodDog(); one.setSize(70); GoodDog two = new GoodDog(); two.setSize(8); System.out.println("Dog one:" + one.getSize()); System.out.println("Dog two:" + two.getSize()); one.bark(); two.bark(); } }

结果:

任何有值可以被运用到的地方,都可用调用方法的方式来取得该类型的值。 比如: int x = 3 + 24; 可以这样改写: int x = 3 + one.getSize();

P83

(完全看不明白)

P84

实例变量永远都会有默认值。 如果你没有明确的赋值给实例变量,或者没有调用setter,实例变量还是会有值。

integers0floating points0.0booleandfalsereferencesnull

P85

局部变量没有默认值。 如果在变量被初始前就要使用的话,编译器会显示错误。

(什么是局部变量?)

1.实例变量是声明在类内,而不是方法中。

class Horse { private double height = 15.2; private String breed; // more code... }

2.局部变量是声明在方法中的。

class AddThing { int a; int b = 122; public int add() { int total = a + b; return total; } }

3.局部变量在使用前必须初始化。

class Foo { public void go() { int x; int z = x + 3; } }

方法的参数基本上与局部变量是相通的——它们都是在方法中声明的。 精确的说应该是在方法的参数列声明的,但相较于实例变量来说,它也是局部的。 这是因为如果调用方法,而没有赋值参数时编译器就会显示错误。所以说,参数一定会被初始化,编译器会确保方法被调用时,会有与声明所相符的参数,且参数会自动地被赋值进去。

P86

使用 == 来比较两个primitive主数据类型,或者判断两个引用是否引用同一个对象。 使用equals()来判断两个对象是否在意义上相等。 像是两个String对象是否带有相同的字节组合。

P87

以值传递就是以拷贝传递。

最新回复(0)