课后习题

选择题 3 题

代码:

class Some{
String ToString(){
return "Some instance";
}
}
public class Main {
public static void main(String[] args) {
Some some=new Some();
System.out.println(some);
}
}

截屏结果为:

class Some里并没有构造函数,所以系统自动为其加了个无参数无内容的构造函数,对于 some 来说,some=new Some(),即 some 此时指向的对象并没有初始内容,那么这时结果输出的 Some@XXXX,XXXX为十六进制数字 代表什么呢?

选择题 4 题

代码:

class Some1{
int hashCode(){
return 99;
}
} class Main1{
public static void main(String[] args) {
Some1 some=new Some1();
System.out.println(some.hashCode());
}
}

代码编译失败

修改代码:

class Some1{
public int hashCode(){
return 99;
}
} class Main1{
public static void main(String[] args) {
Some1 some=new Some1();
System.out.println(some.hashCode());
}
}

(在 int hashCode()前加了 public )

截屏结果为:

这就是所说的,重新定义方法要注意,对于父类中的方法权限,只能扩大但不能缩小;是不是也意味着,自己得多熟悉 object 里面的方法名称。

选择题 9 题

代码:

class Soo{
Soo(){
this(10);
System.out.println("Soo()");
}
Soo(int x){
System.out.println("Soo(int x)");
}
} class Other extends Soo{
Other(){
super(10);
System.out.println("Other()"); }
Other(int y){
System.out.println("Other(int y)");
}
} class Useos{
public static void main(String[] args) {
System.out.println(new Other());
System.out.println();
System.out.println(new Other(10));
System.out.println();
System.out.println(new Soo());
}
}

结果截屏为:

可以看到,除了由调用构造函数引起的输出,还有一个,类似 选择题 3 题 的结果。

改成先定义再输出

代码:

class Useos1{
public static void main(String[] args) {
Other other=new Other();
System.out.println();
Other other2=new Other(10);
System.out.println();
Soo soo=new Soo();
System.out.println();
System.out.println(other);
System.out.println();
System.out.println(other2);
System.out.println();
System.out.println(soo);
}
}

结果截屏为:

说明,在创建对象的时候,构造函数已经开始调用。

也就是说,在直接输出中,如System.out.println(new Other());,相当于,它会先调用构造函数,函数执行完后,再执行System.out.println(other);

关于《Java读书笔记》第六章课后习题选择题总结与疑问的更多相关文章

  1. 20145330《Java学习笔记》第一章课后练习8知识总结以及IDEA初次尝试

    20145330<Java学习笔记>第一章课后练习8知识总结以及IDEA初次尝试 题目: 如果C:\workspace\Hello\src中有Main.java如下: package cc ...

  2. C primer plus 读书笔记第六章和第七章

    这两章的标题是C控制语句:循环以及C控制语句:分支和跳转.之所以一起讲,是因为这两章内容都是讲控制语句. 第六章的第一段示例代码 /* summing.c --对用户输入的整数求和 */ #inclu ...

  3. 《Microsoft Sql server 2008 Internals》读书笔记--第六章Indexes:Internals and Management(1)

    <Microsoft Sql server 2008 Internals>索引文件夹: <Microsoft Sql server 2008 Internals>读书笔记--文 ...

  4. [Effective Java 读书笔记] 第三章类和接口 第十六条

    第十六条 复合优先于继承 如果不确定B和A的关系是,is-a的关系,B确实也是A,那么久不应该使用B继承A,否则会暴露实现细节, 你的实现都会限制在原始的实现上. 书中举的第一个例子,实现了一个类ex ...

  5. 《Java核心技术(卷一)》读书笔记——第六章:内部类

    1.      内部类的概念? 类中类 2.      为什么要用内部类? 内部类的方法可以访问外部类的实例域 内部类对外部类的同一个包中的类实现了隐藏 匿名内部类在“想要定义一个回调函数却又不想编写 ...

  6. Java 学习笔记 ------第六章 继承与多态

    本章学习目标: 了解继承的目的 了解继承与多态的关系 知道如何重新定义方法 认识java.lang.object 简介垃圾回收机制 一.继承 继承是java面向对象编程技术的一块基石,因为它允许创建分 ...

  7. [Effective Java 读书笔记] 第8章 通用程序设计

    本章主要讲了以下几条基本的JAVA编程原则: 1.将局部变量的作用域控制在最小,在使用时才定义 2.for-each优于for循环 有三个例外(1,2点主旨就是,for each只能用于读取,不能用于 ...

  8. [Effective Java 读书笔记] 第三章 对所有对象都通用的方法 第八 ---- 九条

    这一章主要讲解Object类中的方法, Object类是所有类的父类,所以它的方法也称得上是所有对象都通用的方法 第八条 覆盖equals时需要遵守的约定 Object中的equals实现,就是直接对 ...

  9. 《利用python进行数据分析》读书笔记--第六章 数据加载、存储与文件格式

    http://www.cnblogs.com/batteryhp/p/5021858.html 输入输出一般分为下面几类:读取文本文件和其他更高效的磁盘存储格式,加载数据库中的数据.利用Web API ...

随机推荐

  1. 让你变成ASP木马高手

    .名称:如何制作图片ASP木马 (可显示图片) 建一个asp文件,内容为<!--#i nclude file="ating.jpg"--> 找一个正常图片ating.j ...

  2. poj_2315 最小费用最大流

    题目大意 一个图上有N个顶点,从1到N标号,顶点之间存在一些无向边,边有长度,要求从顶点1走到顶点N,再从顶点N走回顶点1,其中不必要经过每个顶点,但是要求走的路径上的边只能经过一次.求出从1---& ...

  3. C、C++编程入口,常见的编程题

    1.设计一个从5个数中取最小数和最大数的程序. 2.#include<stdio.h> 3.int min(int a[],int i); 4.int max(int a[],int i) ...

  4. c++ 重载、重写、重定义(隐藏)

    1.重载overload:函数名相同,参数列表不同. 重载只是在类的内部存在,或者同为全局范围.(同名,同参函数返回值不同时,会编译出错.因为系统无法知晓你到底要调用哪一个.)   2.重写overr ...

  5. 使用log4net记录日志到数据库(含有自定义属性)

    记录日志是管理系统中对用户行为的一种监控与审核,asp.net中记录日志的方式有很多种,这里我只介绍一下最近用到的log4net,关于他的具体介绍网上有很多,我讲一下他的用法. 第一步:在配置文件中的 ...

  6. github(其他类似github)下载到本地配置

    首先是先装完插件,低版本的myeclipse要自己装插件, 如何使window->show view->other找到git 注意是选第二个... 然后next->next-> ...

  7. EditPlus轻量级编辑器配置常用的语法规则!

    打开EditPlus编辑器:工具 ---- 参数设置 ---- 文件 ---- 设置&语法: 先配置简单的CSS语法: 勾选下面的 “自动完成” ,加载对应的ACP文件,配置一些常用的语法: ...

  8. Mybatis 搭配 阿里druid连接池 连接 oracle 或 mysql

    DRUID介绍 DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针 ...

  9. Linux系统下 MongoDB安装搭建

    1.下载linux的mongodb 2.在目录usr/local下创建文件夹mongodb,把安装包解压到该文件夹中 # mkdir mongodb # tar -zxvf mongodb-3.4.2 ...

  10. nginx 认证访问web

    htpasswd -c /usr/local/nginx/passwd.db huo nginx .conf文件添加↓: