linkin大话面向对象--包和导入
我们现在的代码都扔在一个文件夹里面,比如以后我们做项目,是不是有可能有非常非常多的代码,那我就希望把不同功能和模块的类方便管理,放到不同的文件夹下,引出包概念。
什么是包,就一个文件目录,为了处理重名问题,解决类的命名冲突,类文件管理等问题。包名的书写:全用小写字母,避免使用与系统发生冲突的名字,如不能定义java.lang、java.swing等。java规定,位于包中的类,在文件系统中也必须有与包名层次相同的目录结构。很多初学者以为只要把生成的class文件放在某个目录下,这个目录名就成了这个类的包名了。这是错的:java的包机制需要2方面保证:源文件里使用package语句指定包名,class文件必须放在对应的路径下。现在package确实解决了类的命名冲突,但是问题来了:如果需要使用不同包的其他类时,总是要写该类的全名,这是一件很繁琐的事情。这个时候import关键字派上用场了:import是导入类,我觉得这样描述是有问题的,我觉得import是找类,而不是导入类。
- 导入单个类和导入指定包下全部类:
package linkin;
import java.util.Date;
//手工导入需要使用的类
import java.util.*;
//由JVM自动加载需要使用的类
二者的性能是一样的。
- package的引入,提供类的多层命名空间,从而能更好的管理代码结构,也能避免类名冲突。
编译:javac -d . HelloWorld.java
运行:java cn.linkin.cd.erp.domain
package必须写在文件的开头,必须写在import和类声明之前。java允许将一组功能相同的类放在同一个package下。企业开发的命名规则:域名反过来写,例如:cn.linkin.cd.erp.domain
- java5的新特性:
import static语句导入一个类中的某个静态字段、方法或所有需要使用到的静态字段、方法。一句话来归纳import和import的作用:使用import可以忽略写包名,而使用import static则可以连类名都省略。
import static java.lang.Math.PI;
import static java.lang.Math.*;
- 访问带有package的类:
导入类,更好的翻译是“寻找”类:import pkg.subpkg.className
寻找某个包下被使用到的全部类:import pkg.sunpkg.*;
注意了:* 只能表示类名,不能表示包名。
- 同一个类中出现多个相同的类名处理:
java.util.Date 和 java.sql.Date
类的全限定名:该类的包名.子包名....类名
String类的权限定名: java.lang.String
JVM会自动寻找java.lang下的所有被使用到的类:
所以不需要我们去手工寻找;但JVM不能导入java.lang子包下的类
- 下面的几个包是java中常用包:
java.lang : 语言核心类,系统自动导入,只要搞java,天天都会用这个包。
java.util : java 工具类、集合框架类和接口,以后要学习时间,日历,集合等就得用到这个包。
java.net : 网络编程接口和类,以后要写和网络相关的应用就要用这个包。
java.io : 流的接口和类,以后要写读写文件或者图片等这些就要用这个包。
java.text : java格式化相关类,以后我们要做软件国际化就要用这个
java.sql : jdbc相关接口和类 ,以后操作java连接数据库就要使用到这个包
java.awt : 抽象窗口工具集相关接口和类,搞一个类似于QQ一样的软件,界面就得使用这个包下的类;
java.swing :图形用户界面相关接口和类(可跨平台)
以上这些包里面,lang,util下面的类要多看看,多看看jdk了解下其中的API,我以前的老大就讲过的,一个程序员的功底强不强,单纯的问他jdk里面的API就可以很清楚的了解。其实越底层的东西越复杂,看这些源码,可以让我们很好的理解一些设计和规范,望共勉。
linkin大话面向对象--包和导入的更多相关文章
- linkin大话面向对象--GC和jar包
GC java的垃圾回机制是java语言的重要机制之一.当程序创建对象,数组等引用类型实体时,系统都会在堆内存中为之分配一块内存区,对象就保存在这块内存区中.当这块内存不再被任何变量引用时,这块内存就 ...
- linkin大话面向对象--类和对象
我们每天在撸码,那么我们在敲什么东西呢?明显的我们在写类,写一个类,写一个接口,写某个接口里面写一些属性,在某个类里面写一个方法,然后以一个对象调用方法,对于j2ee来讲的话,可能还会写一些jsp,静 ...
- linkin大话面向对象--闭包和回调
先来理解2个概念:闭包和回调 什么是闭包? 闭包是一个可调用的对象,它记录了一些信息,这些信息来自于创建他的作用域.通过这个定义,可以看出内部类是面向对象的闭包,因为他不仅包含了外部类对象的信 ...
- linkin大话面向对象--内部类
内部类说白了就是类中有类 内部类:嵌套类 外部类:宿主类 内部类主要有以下作用:记住了3个字:多继承... 1,内部类提供了更好的封装,可以把内部类隐藏在外部类中,不允许同一个包中的其他类访问该类. ...
- linkin大话面向对象--包装类
Java提倡的万物皆对象,但是数据类型的划分出现了基本数据类型和引用数据类型,那么我们怎么能把基本数据类型称为对象呢? 基本数据类型 包装类 byte Byte short Short int Int ...
- linkin大话面向对象--多态
java引用变量有2个类型,一个是编译时类型,一个是运行时类型: 编译时类型:声明的类型,把它看做是什么东西 运行时类型:真正的类型,实际上指的是什么东西 如果编译时类型和运行时类型不同,就出现多态. ...
- linkin大话面向对象--枚举
枚举类(enum) 其实我们使用到枚举的地方还是很多的,其实我们可以完全人工的来实现枚举的功能.比如说我现在手里的项目我就是自己实现的枚举,说白了,枚举就是一个类的多例模式. 1,使用enum声明,默 ...
- linkin大话面向对象--java关键字
java中的关键字有以下几个,他们不能作任何其它的用途. 发现没,java中的关键字全是小写,java是严格区分大小写的. abstract default null synchronized ...
- linkin大话面向对象--初始化块
java使用构造器来对单个对象进行初始化操作,使用构造器先完成整个java对象的状态初始化,然后将java对象返回给程序,从而让整个java对象的信息更加完整.与构造器作用非常类似的是初始化块,它也可 ...
随机推荐
- PyQt4中的Treeview
import sys from PyQt4 import QtCore, QtGui from qyolk import Ui_QYolk from yolk import yolklib class ...
- swiper插件的简单使用,实现图片轮播
移动端和p c端经常会遇到写轮播图的情况,这里只是简单的说一下swiper插件的简单用法(移动端为例). <!DOCTYPE html> <html lang="en&qu ...
- 数据结构-栈 C和C++的实现
在数据结构中,栈是一种桶状结构,每次往桶里放数据,最后放的数据最先被拿出来,最先放进去的数据最后才能出来(FILO) C语言: 一.文件清单: MyStack.h: #ifndef _MYSTACK_ ...
- 设计模式复习小结一(Strategy Pattern/Observer Pattern/Decorator Patter/Factory Pattern)
目录: 前言 1. Stratrgy Pattern 2. Observer Pattern 3. Decorator Pattern 4. Factory Pattern 4.1 FactoryPa ...
- TLB和MMU的区别
MMU是Memory Management Unit的缩写,中文名是内存管理单元,它是中央处理器(CPU)中用来管理虚拟存储器.物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制 ...
- Zabbix实战-简易教程--动作(Actions)--自动注册
一.概述 之前已经讲述了自动发现功能,自动注册和自动发现非常类似,但是比自动发现更精确.因为自动注册,是在Agent上自定义元数据,然后Agent将元数据发送给server进行匹配,如果匹配一致,则进 ...
- 基础Linux命令总结
简单命令Linux ls 列出当前文件目录下的文件(只显示文件名) pwd 显示当前操作的路径 cd 跳转路径 ls -a 可以把隐藏的文件显示出来 ,另外,创建隐藏文件的命令是 touch.123. ...
- HTML元素分类【三种类型】
在CSS中,html中的标签元素大体被分为三种不同的类型: 块状元素.内联元素(又叫行内元素)和内联块状元素. 块状元素:display:block内联元素:display:inline 内联块状 ...
- Spring读取外部属性-properties
概述 在Spring中处理外部值最简常用的方法就是外部创建name.properties文件,并在其中声明变量值,供Java进行读取.比如数据源信息配置,Java固定属性位置等.读取的方式一般由三种: ...
- bzoj:3400 [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队
Description 农夫顿因开始玩飞盘之后,约翰也打算让奶牛们享受飞盘的乐趣.他要组建一只奶牛飞盘 队.他的N(1≤N≤2000)只奶牛,每只部有一个飞盘水准指数Ri(1≤Ri≤10000 ...