Java编程思想读书笔记_第二章

java对于将一个较大作用域的变量“隐藏”的场景会有保护:编译告警。比如:

1 int x = 5;
2 {
3     int x = 6;
4 }

但是对于类中方法的局部变量和类成员变量确是可以重名的,比如

 1 class Test {
 2     int x = 4;
 3     String s = "hello";
 4
 5     void show() {
 6         int x = 5;
 7         System.out.println(this.x);
 8         System.out.println(x);
 9         System.out.println(s);
10     }
11     public static void main(String[] args) {
12         new Test().show();
13         new Dog().eat();
14     }
15 }
16
17 class Dog {
18     void eat() {
19         System.out.println("eat");
20     }
21 }

类Test中的show方法中的int x就可以和类成员变量int x重名,而且如果不加this.x明确指示使用类成员变量的话默认就使用的是局部变量。

时间: 2024-10-27 00:13:51

Java编程思想读书笔记_第二章的相关文章

Java编程思想读书笔记_第三章

本章提到的关于==的部分,一个完整的实验如下: 1 class Test { 2 public static void main(String[] args) { 3 Integer i = new Integer(47); 4 Integer j = new Integer(47); 5 Integer i1 = 47; 6 Integer j1 = 47; 7 int i2 = new Integer(47); 8 int j2 = new Integer(47); 9 int i3 = 4

Java编程思想读书笔记_第7章

final关键字类似const: 1 import java.util.*; 2 3 public class FinalData { 4 static Random rand = new Random(47); 5 final int valueOne = 9; 6 final int i4 = rand.nextInt(20); 7 static final int INT_5 = rand.nextInt(20); 8 public static void main(String[] ar

Java编程思想读书笔记_第6章(访问权限)

四种访问权限: public private 包访问权限 protected 如果没有明确指定package,则属于默认包 1 package access.dessert; 2 3 public class Cookie { 4 public Cookie() { 5 System.out.println("Cookie()"); 6 } 7 8 void bite() { 9 System.out.println("bite"); 10 } 11 } 12 13

Java编程思想读书笔记--第14章类型信息

7.动态代理 代理是基本的设计模式之一,它是你为了提供额外的或不同的操作,而插入的用来代替“实际”对象的对象.这些操作通常涉及与“实际”对象的通信,因此代理通常充当着中间人的角色. 什么是代理模式? 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问. 代理模式有什么好处? 在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 代理模式一般涉及到的角色有: 抽象角色:声明真实对象和代理对象的共同接口,这样一来在任何可以使用目标对象

Java编程思想读书笔记--第21章并发

1.基本的线程机制 定义任务 public class LiftOff implements Runnable{ protected int countDown = 10; private static int taskCount = 0; private final int id = taskCount++; public LiftOff(){} public LiftOff(int countDown){ this.countDown = countDown; } public String

JAVA编程思想读书笔记(五)--多线程

接上篇JAVA编程思想读书笔记(四)--对象的克隆 No1: daemon Thread(守护线程) 参考http://blog.csdn.net/pony_maggie/article/details/42441895 daemon是相于user线程而言的,可以理解为一种运行在后台的服务线程,比如时钟处理线程.idle线程.垃圾回收线程等都是daemon线程. daemon线程有个特点就是"比较次要",程序中如果所有的user线程都结束了,那这个程序本身就结束了,不管daemon是否

Java编程思想读书笔记之内部类

现在是够懒得了,放假的时候就想把这篇笔记写出来,一直拖到现在,最近在读<Java编程思想>,我想会做不止这一篇笔记,因为之前面试的时候总会问道一些内部类的问题,那这本书的笔记就从内部类开始说起. 一.为什么需要内部类 1.一个内部类的对象可以访问它的外围类的私有数据. 2.对于同一个包中的其他类来说,内部类能够隐藏起来. 3.使用内部类实现多重继承. 二.内部类重要提要 1.在方法内部或者方法内部的作用域的内部类 eg:方法内部的内部类 public interface InnerInterf

[Java编程思想-学习笔记]第3章 操作符

3.1  更简单的打印语句 学习编程语言的通许遇到的第一个程序无非打印"Hello, world"了,然而在Java中要写成 System.out.println("Hello, world"); 我们都会感觉太冗长了,能不能简单一些呢?静态导入可以省略掉System,就像这样 import static java.lang.System.*; public class Hello { public static void main(String[] args) {

Java编程思想读书笔记

声明:原创作品,转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4290955.html 第一章对象导论... 1 第二章一切都是对象... 4 第三章操作符... 10 第四章流程控制... 12 第五章初始化与清理... 14 第六章访问权限控制... 15 第七章复用... 23 第八章多态... 2