Java面向对象 包
Java面向对象 包
知识概要:
(1)包的概念
(2)包的命名
(3)编译执行
(4)导入
(5)包的访问权限
包:
包(package)用于将完成不同功能的类分类,放在不同的目录(包)下
包的命名规则:
将公司域名反转作为包名。例如 cn.itheima.day1;...
包名一般每个字母都要小写。
把类定义在某个包下面,一般在源文件开头加上package xxx.yyy;
则类的全名是xxx.yyy.类名
如果定义类的时候没有使用package指定包名,则Java认为类位于默认包里面(default package)。
编译执行:
如果程序中声明了包名,即首行写了package com.xxx;
那么如果按照一般的编译方式 javac 源文件名.java
会在当前目录下生成class文件。
然后直接用:java源文件名执行,则会报错。
出现java.lang.NoClassDefFoundError
产生问题的原因
包的意义在于产生一种目录结构,所以class文件必须位于相应的目录层次结构中。
以package com.xxx为例:
一种解决方式是手工建立com文件夹,里面建立xxx文件夹,把生成的class文件放在目录结构中,并且执行的时候采用java 完整类名
(即带上包名)才能够执行。
不需要手动建立文件夹的解决手段
使用编译参数 -d的解决方法:
编译的时候可以在javac命令中采用-d指定存放生成的类文件的位置。
-d . 可以在当前目录下生成。
用如下命令:
javac –d . 源文件名.java
则编译后在当前目录下,编译器会生成包的文件目录层次结构,并且把class文件放入其中。
如果不用“.”,也可以指定目录。
用java命令执行的时候需要将包的信息全部带上,即用完整的加包名的形式执行。
执行:
java 完整类名
导入:
导入(import),将使用package分离的各个类导入回来,让编译器能够找到所需要的类。
使用在同一个包下的类不需要导入可以直接用,使用不同的包下的类才需要导入。
使用格式:
import aaa.bbb.ccc;
可以使用通配符“*”代替类名,将包中的所有类导入:
import aaa.bbb.*;
注意:
import aaa.bbb.*;并不会导入import aaa.bbb.ccc包下面的类。
包的访问权限
Java面向对象 包的更多相关文章
- JAVA面向对象-----包机制
JAVA面向对象-–包机制 问题: 当定义了多个类的时候,可能会发生类名的重复问题. 在java中采用包机制处理开发者定义的类名冲突问题. 怎么使用java的包机制呢? 1.使用package 关键字 ...
- java面向对象--包及访问控制符
多人开发同一个项目时,会出现类名称相同的情况.package就是为了避免类或接口名称重复而采用的一种措施.实际上包就是有一定层次结构的文件夹,*.class文件要保存当前类声明的和包对应的文件夹中. ...
- Java面向对象(static、final、匿名对象、内部类、包、修饰符、代码块)
面向对象 今日内容介绍 u final u static u 匿名对象 u 内部类 u 包的声明与访问 u 四种访问修饰符 u 代码块 第1章 final关键字 1.1 final的概念 继承的出现提 ...
- Java 面向对象异常处理,finally,覆盖时异常特点,package,import,包之间的访问(10)
Java 面向对象异常处理, finally:final 关键字的用法参考http://www.cnblogs.com/itcqx/p/5541659.html 覆盖时异常特点,package,imp ...
- 090 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 04 使用包进行类管理(2)——导入包
090 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- 089 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 使用包进行类管理(1)——创建包
089 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- Java 面向对象之static,final,匿名对象,内部类,包,修饰符
01final关键字概念 A: 概述 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承, 或者有些类中的部分方法功能是固定的,不想让子类重写.可是当子类继承了这 ...
- JavaSE入门学习17:Java面向对象之package(包)
一Java包(package) 为了更好地组织类,Java提供了包机制,用于差别类名的命名空间. 包的作用: A把功能类似或相关的类或接口组织在 ...
- java jar包收集
activation~与javaMail有关的jar包,使用javaMail时应与mail.jar (mail.jar和activation.jar)一起加入到lib中去,具体负责mail的数据源和类 ...
随机推荐
- CSS display和visibility的用法和区别
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt408 大多数人很容易将CSS属性display和visibility混淆,它 ...
- 在Centos7x上部署docker
docker只支持CentOS7.x系统,所以近期根据docker官网指南自己搭建了一套,供大家参考. 1.部署Centos7.x系统,查看系统版本. 2.执行 sudo yum update 更新到 ...
- jQuery学习目录
前面的话 目前来说,jQuery可能已经不再处于人们的话题中心.人们讨论的更多的是Vue.Angular和React.但是,jQuery的使用量依然广泛,据统计,它仍然是目前使用率最高的javascr ...
- 201521123107 《Java程序设计》第8周学习总结
第7周作业-集合 1.本周学习总结 2.书面作业 1.List中指定元素的删除 题集jmu-Java-05-集合之4-1 1.1 实验总结 这次的函数题是编写convertStringToList和r ...
- JAVA基础第二组(5道题)
6.[程序6] 题目:输入两个正整数m和n,求其最大公约数和最小公倍数. 1.程序分析:利用辗除法. package com.niit.homework1; import java.ut ...
- 结对编程1---四则运算---GUI
201421123003 黄建英 201421123004 黄美海 题目描述: 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI(可以是Window ...
- 201521145048 《Java程序设计》第3周学习总结
1. 本章学习总结 学会了对于一个基本类的创建,需要有属性(private public protected),方法( 静态方法 非静态方法),构造函数,main函数,在定义属性时一般使用privat ...
- 201521123029《java程序设计》第2周学习总结
1. 本周学习总结 (1)完成了课后习题,对所学知识进一步巩固. (2)学会了JAVA中的选择结构,循环结构,其中条件必须为布尔表达式,与C++非0即真不同. (3)学会java中的break和con ...
- delphi xe 3的EhLib 9.0 Build 9.0.033 Full Source安装
1.打开项目文件 2.全选 3.编译和buil 4.添加路径
- C# 反射结构体struct的一个坑
今天代码用到了反射赋值,代码是这样写的: var objtype = obj.GetType(); var Fieldinfo = objtype.GetField("I64"); ...