第八章总结

一.Java类包

在Java中定义好一个类,通过Java编译器进行编译之后,都会生成一个.class的文件。当程序的规模逐渐扩大时,就很容易发生类名称冲突的现象。 JDK API 中提供了成千上万具有各种功能的类,系统又是如何管理的呢? Java 中提供了一种管理类文件的机制,就是类包。

1.类名冲突

Java 中每个接口或类都来自不同的类包,无论是Java API中的类与接口还是自定义的类与接口,都需要隶属于某一个类包,这个类包包含了一些类和接口。如果没有包的存在,管理程序中的类名称将是一件非常麻烦的事情。如果程序只由一个类组成,自然不会出现类名重叠的问题,但是随着程序的类的数量增多,难免会出现这一问题。例如,在程序中定义一个 Login 类,因业务需要,还要定义一个名称为 Login 的类,但是这两个类所实现的功能完全不同,于是问题就产生了一一编译器不会允许存在同名的类文件。解决这类问题的办法是将这两个类放置在不同的类包中。

2.完整的类路径

一个程序中同时使用到javautil.Date类与java.sql.Date类,如果在程序中不指定完整的类路径,编译器不会知道这段代码使用的是javautil类包中的 Date类还是iava.sgl类包中的Date类,所以需要在指定代码中给出完整的类路径。

例如,在程序中使用两个不同Date类的完整类路径,可以使用如下代码:

java.util.Date date = new java.util.Date();

java.sql.Date date2 = new java.sqlDate(1000);

3.创建包

在Eclipse中创建包的步骤如下:

(1) 在项目的src节点上右击,选择“New”/“Package”命令

(2) 弹出“NewJava Package”对话框,在“Name”文本框中输入新建的包名,如com.mr,然后单击“Finish”按新建Java包钮,如下图所示。

 (3) 在Eclipse中创建类时,可以在新建立的包上右击,选择“New”命令,这样新建的类会默认保存在该包中。另外也可以在New Java Class对话框中指定新建类所在的包。

创建自定义的Math类:

4.导入包

使用import 关键字导入包

如果某个类中需要使用 Math 类,那么如何告知编译器当前应该使用哪一个包中的 Math 类,是java.lang.Math 类还是 com.mr.Math 类?这是一个令人困扰的问题。此时,可以使用 Java 中的import关键字指定。例如,如果在程序中使用import 关键字导入 com.mr.Math类,在程序中使用Math类时就会自动选择com.mr.Math类。import 关键字的语法如下:

  import com.mr.*;

  import com.mr.Math

在使用import关键字时,可以指定类的完整描述,如果为了使用包中更多的类,可以在使用import关键字指定时在包指定后加上*,这表示可以在程序中使用该包中的所有类。

使用import导入静态成员

import 关键字除导入包外,还可以导入静态成员,这是JDK 5.0以上版本提供的功能。导入静态成员可以使编程更为方便。使用import导入静态成员的语法如下:

  import  static  静态成员

使用import导入静态成员:

二.内部类

public class Car{

//成员变量

private String brand

//成员方法

public void start(){

}

//构造方法

public Car(){

}

//成员内部类

class Engine{

    }

}

1.成员内部类

在一个类中使用内部类,可以在内部类中直接存储其所在类的私有成员变量。成员内部类的语法如下:

class OuterClass{

    class lnnerClass{

    }

}

使用成员内部类模拟发动机点火:

 使用this关键字获取内部类与外部类的引用

如果在外部类中定义的成员变量与内部类的成员变量名称相同,可以使用this关键字

在内部类中调用外部类对象:

 2.匿名内部类

匿名类只是在创建对象时才会编写类体的一种写法,匿名类的特点是"现写现用",其语法如下:

new 父类/父接口(){

       子类实现内容

};

使用匿名内部类创建一个抽象狗类的对象:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在《python深度学习》的第八章中,主要讨论了在ImageNet大规模视觉识别挑战(ILSVRC)上训练深度神经网络的主题。其中最后一章讨论了SqueezeNet深度学习架构[1]。SqueezeNet是在2016年的一篇论文中提出的,它在准确度上和AlexNet相当,但参数减少了50倍,模型大小小于0.5MB。 在这一章中,还提到了一个名为test_alexnet.py的脚本,用以测试在ImageNet上训练的CNN模型。这个脚本没有进行任何修改,因为该章节中的test_*.py脚本旨在成为可以应用于任何在ImageNet上训练的CNN模型的模板。 此外,这一章还介绍了处理问题的一种方法,即使用softmax温度。在使用softmax温度时,需要尝试多种不同的温度值,以找到合适的温度值。 总结起来,《python深度学习》第八章主要涵盖了SqueezeNet深度学习架构、在ImageNet上训练的CNN模型的测试脚本以及使用softmax温度来处理问题的方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python视觉深度学习系列教程 第三卷 第8章 在ImageNet上训练SqueezeNet](https://blog.csdn.net/bashendixie5/article/details/122175562)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [《python深度学习》学习笔记与代码实现(第八章:8.1,8.2,8.3)](https://blog.csdn.net/qq_41718518/article/details/90216766)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值