JAVA中的访问修饰符和包
一、JAVA访问修饰符
访问修饰符,用来控制类中成员的可见性
有四个访问修饰符,分别是:default,private,public,protected
1、default(默认):默认权限,不用写的。在同一包内访问。
2、private(私有):只能在同一类中访问。
3、public(公有):在任何地方都可以访问
4、protected(受保护的):子父类(即使子父类不在同一包)和本包中可访问。
public > protected > default > private
public protected default private
同一类 ok ok ok ok
同一包 ok ok ok
子类 ok ok
不同包 ok
二、包package
在大型项目中,往往会有几十甚至几百个类,如果不对类进行分类管理,后期进行维护时会有很大的不便。
所以,需要对类(或其它类型)进行分类组织管理,这种机制就称为“包”。
“包”是类的容器,用于分隔类名空间。如果没有指定包名,所有的示例都属于一个默认的无名包。
包的作用:
1、区分相同名字的类。同一包中的类,不能同名。但是不同包的类,可以同名。
2、当类很多时,方便管理。
3、控制访问范围。
包名命令规范
包名关键字package,包名一律都小写
JAVAC编译方式:
当定义包时,JAVAC编译命令:javac+源文件目录+java源文件名
如果是在源文件当前目录生成包和文件: javac -d . +java源文件名 (.点代表当前目录)
如下文件
package pack; class PackageDemo
{
public static void main(String[] args)
{
System.out.println("Hello Package");
}
}
保存在 D:\java0217\day10
javac编译命令:
javac -d d:\java0217\day10 PackageDemo.java
javac -d . PackageDemo.java
访问用java 包名.类名
如果要将class文件生成在指定的目录,JAVAC编译命令:javac+-d+指定生成目录+java源文件名
D:\myclass目录中生成类文件,javac -d d:\myclass PackageDemo.java
再设置类目录 set classpath=d:\myclass,即可访问
包之间的访问:
访问不同包中的class,需要导入包import
如下,定义一个新的Job类,并且将Job类放在study包内
package study; //定义study包 public class Job { //包中定义Job类
public String jobName;
public void show(){
System.out.println(jobName);
}
}
然后在包中访问这个job类时,需要import导入study包中的job类:
import study.Job; //导入study中的Job类 public class MyTest {
public static void main(String[] args)
{
Job myJob=new Job(); //实例化Job类
myJob.jobName="工程师"; //调用类的成员属性
myJob.show(); //调用类的成员方法
}
}
输出结果:
工程师
进一步说明:按以上导入包类的方法,如果study包中定义了N侈个类,则每次实例化不同类的对象时,都需要写import study.xxxx,如有100个类就要写100次import,较麻烦
我们可以用星号*代替包中的所有类名,一次性导入包中的所有类——import study.*
import study.*; //一次性导入study包中的所有类 public class MyTest {
public static void main(String[] args)
{
Job myJob=new Job();
myJob.jobName="工程师";
myJob.show();
}
}
注:
同一包中的类,不但表示其在同一包容器中,同时,还处于同一物理路径中。
定义class时,建议都要设置package,尽量不要放在默认包中。
JAVA中的访问修饰符和包的更多相关文章
- 分享知识-快乐自己:java 中的访问修饰符
1):Java中的访问修饰符: Java面向对象的基本思想之一是封装细节并且公开接口.Java语言采用访问控制修饰符来控制类及类的方法和变量的访问权限,从而向使用者暴露接口,但隐藏实现细节. 访问控制 ...
- java中的访问修饰符
Java有四种访问权限,其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符.其中package代表缺省的访问权限,具体到代码中就是不写任何修饰符的 ...
- java中的访问修饰符详解
主要讲述一下java中protected的修饰控制范围. 在叙述protected修饰符使用之前,先来说一下java,可以发现,开发java程序是一个时时刻刻都在编写类.开发类.定义类的过程.类里面可 ...
- java 中的访问修饰符
一. public:所有类都可以访问 protected:所有子类和同包下的类都可以访问 缺省:同包类都可以访问 private:类本身才可以访问 注意点:protected修饰类属性时,例如 pac ...
- java中的访问修饰符 (2013-10-11-163 写的日志迁移
访问级别 修饰符 同类 同包 子类 ...
- java中的访问修饰符2
综上所述:protected强调的是子类,deafult强调的是本包,private强调的是本类,public强调的是开放性.
- java中4种修饰符访问权限的区别及详解全过程
java中4种修饰符访问权限的区别及详解全过程 http://jingyan.baidu.com/article/fedf0737700b3335ac8977ca.html java中4中修饰符分别为 ...
- 详解Java中的访问控制修饰符(public, protected, default, private)
Java中的访问控制修饰符已经困惑笔者多时,其中较复杂的情况一直不能理解透彻.今天下定决心,系统.全面地研究Java中的访问控制修饰符的所有方面,并整理成这篇文章,希望有同样疑惑的读者读完后能有所收获 ...
- Java学习笔记十九:Java中的访问控制修饰符
Java中的访问控制修饰符 一:Java修饰符的种类: 访问修饰符 非访问修饰符 修饰符用来定义类.方法或者变量,通常放在语句的最前端.我们通过下面的例子来说明: public class Hello ...
随机推荐
- Ext实现简单计算器
以下是本人原创,如若转载和使用请注明转载地址.本博客信息切勿用于商业,可以个人使用,若喜欢我的博客,请关注我,谢谢!少帅的博客 使用Ext实现简单计算器,网页版实现 1.页面部分calculator. ...
- POJ 1995 Raising Modulo Numbers
快速幂取模 #include<cstdio> int mod_exp(int a, int b, int c) { int res, t; res = % c; t = a % c; wh ...
- Codeforces#360Div2
A题 题意:给定d个操作,每个操作当中只包含1和0,若存在0,则表示操作者获胜,求最大的连续获胜个数 分析:直接统计之后用一个数组纪录下来即可 #include <iostream> #i ...
- poj1328贪心中的区间问题
题意:给定海岛个数.雷达半径以及各海岛坐标,求能覆盖所有海岛的最小雷达数. 思路:先对每个海岛求一个区间:即能覆盖它的所有雷达的圆心所构成的区间.然后对区间排序,定义一个最右点over,依次延伸ove ...
- 02 easyui -parser
parser: 页面节点class=“easyui-” +组件名(在plugins里) ,则可以 渲染成相应的组件.
- leetcode--007 word break I
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+4AAAC5CAIAAAA55fI7AAAZa0lEQVR4nO3dPW7bQIMG4L2MT6B7+A
- iOS调用相机,相册,上传头像 分类: ios技术 2015-04-14 11:23 256人阅读 评论(0) 收藏
一.新建工程 二.拖控件,创建映射 三.在.h中加入delegate @interface ViewController : UIViewController 复制代码 四.实现按钮事件 -(IBAc ...
- .net中的4种事务总结
在 一个MIS系统中,没有用事务那就绝对是有问题的,要么就只有一种情况:你的系统实在是太小了,业务业务逻辑有只要一步执行就可以完成了.因此掌握事务处 理的方法是很重要,进我的归类在.net中大致有以下 ...
- tap是什么意思
分光是数据通过光纤传输:分路是数据通过网线传输.粗浅的说,Tap的概念类似于“三通”的意思,即原来的流量正常通行,同时分一股出来供监测设备分析使用. 其实这只是最简单的Tap的概念,目前的技术发展已经 ...
- Swing 窗口的最小化到系统图标与还原
2014年2月26日 13:01:47 一个上午的功夫,终于折腾好了. 上午主要是卡在监听事件的参数问题.当时脑子不好使,忘记事件是自己构造的,傻傻的测试了半天,如何传递窗口的参数 等中午解决的时候, ...