Java的包和访问权限

1.什么是java当中的软件包?
2.为什么要使用软件包?
3.如何给一个类打包?
例如:
开发团队,开发一个系统,分成两个组.
A组,B组.
A组, 开发三个类user ,student,teacher.
B组,开发三个类 uset ,Reguser,unreguser.

麻烦是把两部分合并起来.
合成的时候,问题来了,
两个类都叫user.
两个类不允许放在同一个文件夹下面.

java提供了一种机制,软件包.
给软件打包.
简单的理解., 软件包就是一个文件夹.

package mars;//生成软件包(包名 mars)
编译javac -d . Test.java (-d 就是根据包名生成文件夹名 -d是目录,
. 表示在那生成文件夹. mars这个文件夹放.目录,就是当前目录.)
javac -d c: Test.java 也是可以的.

执行的时候使用命令
java mars.Test //类的全称发生了变化.

ps:
1.软件包为java 类提供了命令空间.
2.打包需要使用package指令.
3.一个类的全名应该是"包名" + "类名".

//将类放置到一个包当中,需要使用package "包名" //编译时需要使用-d参数 ,该参数的作用是依照包名生成相应的文件夹. //一个类的全名应该是"包名" + "." + "类名" //包名的命名规则: //1.要求包名所有的字母都要小写; //2.包名一般情况下,是你的域名倒过来写. //marsdroid.org //package org.marsdroid; //其实爱怎么想就怎么想,但是一般人还是准守这个. package org.marsdroid; //package mars; class Test{ public static void main(String args[]){ System.out.println("hello package"); } }

访问权限

1.java当中的访问权限
2.软件包的导入

java当中的访问权限
1.public 公共权限
2.private 私有权限
3.default 包级别访问权限
4.protected 受保护权限.

package org.marsdroid; //public 可以修饰类,成员变量和成员函数 //public 就是不有任何限制,同一个包当中,或者不同包当中的类都可以自由的访问 //private 可以修饰成员变量和成员函数 //private 只能在本类中使用 //default(不写权限修饰符,就是default权限)可以修饰类,成员变量和成员函数 //default 在同一个包当中,可以自由访问. //public类 //如果一个类声明为public,那么类名必须与源文件的名字相同.这是java的语法? //public的作用(跨包访问) //如果类不是public,就无法从外部包中对其进行访问.(就是两个类不在同一个包中) //两个类在不同的包中,一个类相调另一个的,类需要public //两个类在不同的包中如果想要访问一个类的,成员函数,与成员变量的话,那么这些成员函数,成员变量 也需要public public class Person{ public String name; public int age; // public void introduce(){ System.out.println("name"); } } //私有private 变量 ,只能在当前的类中使用, 不管这两个类在不在 一个文件中. //私有private 函数 ,只能在当前的类中使用, 不管这两个类在不在同一个文件中 //default权限,默认,什么都不写. //default 如果Person和Test在同一个包中,可以任意使用,Test可以调用Person这个类的变量与函数. //default 如果Person和Test不在同一个包中,Test不可调用Person这个类的变量与函数. //default 就是包访问权限.

package com.marsdroid; import org.marsdroid.Person; //如果有多个包需要导入可以使用通配符号* // import ort.marsdroid.*; class Test{ public static void main(String args[]){ //由于person,test不在一个包中,person要写全名 // org.marsdroid.Person p = new org.marsdroid.Person(); Person p = new Person(); //包导入后import org.marsdroid.Person, 可以直接这样写 p.name = "zhangsan"; p.age = 10; } }

1.访问权限与继承.

2.protected 权限

package com.marsdroid; //如果子类与父类不在同一个包当中,则子类无法继承到父类的当中的default权限的 //成员变量和成员函数.(有问题) //如果子类和父类不在同一个包当中,子类可以继承到父类当中的default 权限的成员变量 //和成员函数,但是由于权限不够,无法使用. //如果子类和父类在同一个包当中,则 //Student //void introduce(){ // System.out.println("我的名字是" + name ",我的年龄是" + age); // } // 可执行 //定义public,可以跨包访问 //protected 权限首先拥有和default一样的功能,但是protected该权限只能修饰成员变量和成员函数. //但是default可以修饰类. //protected 跨包使用成员变量和函数. public > protected > default >private public class Person{ public String name; //可以跨包访问 protected int age;//只能被子类跨包访问 //例:在在程序中,只能被Student这个子类访问age // 不能被Test 这个类访问age.因为它不是 // Person的子类,Person 与Test这两个类没什么关系 //如果变量声明为private,则变量只能在本类中使用. void eat(){ System.out.println("eat"); } void sleep(){ System.out.println("sleep"); } }

package org.marsdroid; import com.marsdroid.Person; class Student extends Person{ void introduce(){ System.out.println("我的名字是" + name +",我的年龄是" + age); } }

package org.marsdroid; import com.marsdroid.Person; class Test{ public static void main(String args[]){ Person p = new Person(); p.name = "zhangsan"; p.age = 10; } }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,497评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,502评论 18 399
  • 一开始学Java,就用的eclipse。对包的印象就是右键新建而已。至于导入包,等报错了再导。被IDE奴役的傻孩子...
    Sia_Coding阅读 2,284评论 3 4
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 4,544评论 1 114
  • 人称代词主格 代词是代表名词的单词,像“er他”代表了“der Mann这个男人”。在主格状态下,人称代词包括"i...
    medisol阅读 8,612评论 5 3