`

包的应用

阅读更多
package pack;

class PackageDemo{
	public static void main(String[] args){
		packa.Packa a = new packa.Packa();
		a.show();
		a.method();
	}
}

/*
PackageDemo.java:5: 错误: 找不到符号
                Packa a = new Packa();
                ^
  符号:   类 Packa
  位置: 类 PackageDemo
PackageDemo.java:5: 错误: 找不到符号
                Packa a = new Packa();
                              ^
  符号:   类 Packa
  位置: 类 PackageDemo
2 个错误

错误原因:类名写错
因为类名的全名是:包名.类名
________________________________________
PackageDemo.java:5: 错误: 找不到符号
                pack.Packa a = new pack.Packa();
                    ^
  符号:   类 Packa
  位置: 程序包 packa
PackageDemo.java:5: 错误: 找不到符号
                pack.Packa a = new pack.Packa();
                                       ^
  符号:   类 Packa
  位置: 程序包 packa
2 个错误

错误原因:packa包不在当前目录下
需要设置classpath告诉jvm去哪里找指定的packa包
————————————————————————————————————————————————
PackageDemo.java:5: 错误: Packa在packa中不是公共的; 无法从外部程序包中对其进行访
问
                packa.Packa a = new packa.Packa();
                     ^
PackageDemo.java:5: 错误: Packa在packa中不是公共的; 无法从外部程序包中对其进行访
问
                packa.Packa a = new packa.Packa();
                                         ^
2 个错误

错误原因:有了包,范围变大,一个包中的类要被访问,必须有
足够大的权限。被访问的类的修饰符加上public
________________________________________________
PackageDemo.java:6: 错误: show()在Packa中不是公共的; 无法从外部程序包中对其进行
访问
                a.show();
                 ^
1 个错误

错误原因:类公有后,被访问的成员也要公有才可以被访问。

总结:
包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰
不同包中的子类还可以直接访问父类中被protected权限修饰的成员
包与包之间可以使用的权限只有两种:public和protected

            public protected default private
同一个类中    ok      ok       ok      ok
同一个包中    ok      ok       ok          
子类		  Ok      ok
不同包中      ok

*/

package packa;

public class Packa extends packb.Packb{
	public void show(){
		System.out.println("A hello");
		
	}
}

/*
G:\javaTest>javac -d . \myclass Packa.java
javac: 无效的标记: \myclass
用法: javac <options> <source files>
-help 用于列出可能的选项

G:\javaTest>javac -d .\myclass Packa.java


G:\javaTest>java pack.PackageDemo
A hello

类名为公有,其类名必须与文件名一致。
一个文件中不可以出现两个或以上公有的类或接口。

为了简化类名的书写,使用import,import导入的是包中的类
建议不要写通配符*,需要用到包中的哪个类就导入哪个类

建立包名不要重复,可以使用url来定义,url是唯一的

www.itcast.cn

package cn.itcast.demo
package cn.itcast.test

*/

package packb;

public class Packb{
	protected void method(){
		System.out.println("haha");
	}
}
0
1
分享到:
评论

相关推荐

    Android 多包名打包应用

    在Android开发中,多包名打包是一项常见的需求,尤其对于那些需要发布多个版本或针对不同客户定制应用的开发者来说。这个技术允许我们使用同一套源代码生成具有不同包名和应用名称的APK,以便区分不同的发布渠道或者...

    307-文件包应用举例(51单片机C语言实例Proteus仿真和代码)

    307-文件包应用举例(51单片机C语言实例Proteus仿真和代码)307-文件包应用举例(51单片机C语言实例Proteus仿真和代码)307-文件包应用举例(51单片机C语言实例Proteus仿真和代码)307-文件包应用举例(51单片机C语言实例...

    获取android设备已安装应用信息(包名、图标、应用名)

    本文将详细讲解如何通过编程方式获取Android设备上已安装应用的包名、应用名称和图标。 首先,我们需要了解Android系统的应用程序是如何组织的。每个应用程序都有一个唯一的包名(Package Name),它在整个Android...

    日文分词器的包应用,便于下载

    日文分词器的包应用,便于下载

    X00132-用R语言解读传染病传播模型源码:自由增长模型、SI模型、SIS模型、SIR模型及EpiModel包应用.pdf

    X00132-用R语言解读传染病传播模型源码:自由增长模型、SI模型、SIS模型、SIR模型及EpiModel包应用.pdf

    安卓应用包名集合.xlsx

    2020/7/14 最新安卓应用包名的集合,包含应用名和包名 19万条数据可用于大数据分析,重新是否和自己包名重复等操作

    android 通过应用包名打开应用

    在Android系统中,每个应用程序都有一个独一无二的包名(Package Name),它在应用程序的清单文件(AndroidManifest.xml)中定义。包名起到了标识符的作用,使得系统能够区分不同的应用。本示例“android 通过应用包...

    linux下javaSwing开发的jar包CS打包完整步骤.docx

    在Linux环境下,使用Java Swing开发的应用程序通常被打包成可执行的jar文件,便于分发和执行。然而,为了更好地适应Linux系统,尤其是国产化操作系统,开发者可能希望将jar包进一步封装成DEB(Debian Package)...

    Android应用源码之手机抓包相关工具.zip

    PacketCapture是一款专为Android设计的抓包应用,无需root权限即可捕获网络流量。它支持显示TCP、UDP等协议的数据包,可以导出为PCAP格式供其他工具分析。此外,PacketCapture还提供了一些高级功能,如过滤规则和...

    docker python3.8镜像包

    Docker 是一个开源的应用容器引擎,允许开发者打包应用以及应用的依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 ...

    多渠道+多包名+多应用打包配置例子.rar

    这个"多渠道+多包名+多应用打包配置例子.rar"压缩包提供了一个示例,展示了如何有效地实现这一功能。下面将详细解释相关知识点。 1. **多渠道打包**:在Android开发中,多渠道打包是为了针对不同的分发渠道(如...

    打Jar包小工具,运行cmd.bat自动打jar包

    在Java开发过程中,打包应用程序为JAR(Java Archive)文件是一项常见的任务,它将源代码编译后的类文件和其他资源组合成一个独立的可执行文件。"打Jar包小工具"是一个便捷的解决方案,旨在简化这个过程。这个工具...

    c#抓包项目源码

    在抓包应用中,可能会有网络接口选择、数据包过滤规则等配置项。 RawSocketCS.sln是解决方案文件,它包含了项目及其依赖项的信息,用于Visual Studio管理多个相关项目。.suo文件(如RawSocketCS.v14.suo和...

    cas客户端war包和project源代码

    当我们拿到一个CAS客户端的war包时,这意味着我们拥有了一个可以直接部署到服务器上的Web应用,它负责处理用户的身份验证请求并与CAS服务器进行通信。 【标签】"cas":CAS是一种广泛使用的身份验证协议,它允许用户...

    win server 2012 R2 kb2919355补丁包

    在当今信息化快速发展的时代,计算机操作系统作为我们日常使用的核心工具,其安全性和功能性的重要性...IT专业人员应当重视此类系统更新,及时将补丁包应用到生产环境之中,以确保系统的可靠性和应用程序的正常运行。

    ios开发 ipa包安装

    这里我们将详细探讨如何使用个人开发证书打包应用并利用iTunes来安装IPA包,这主要适用于开发者在内部测试或分发未经过App Store审核的应用。 首先,我们需要创建一个IPA包。IPA是iOS应用程序的封装格式,它包含了...

    获取安卓手机安装应用包名,并打开对应应用

    在安卓平台上,获取已安装应用的包名以及打开相应应用是常见的操作,这对于开发者来说尤其重要,例如在实现分享功能、启动其他应用的服务或者进行应用间交互时。本篇文章将详细解析这一过程,并提供相关代码示例。 ...

    统信Windows应用兼容引擎deb安装包及其依赖包

    标题中的“统信Windows应用兼容引擎deb安装包及其依赖包”指向了一套兼容Windows应用的工具,其中“deb”是Debian及其衍生系统(如Ubuntu和Deepin)所用的包格式。安装包是为了解决软件安装和配置过程中的复杂性,...

    获取已装应用程序apk的包名及SHA1码

    在Android系统中,开发者或用户有时需要获取已安装应用程序的包名(Package Name)和SHA1证书指纹(SHA1 Fingerprint)信息。这些信息在多种场景下非常有用,例如,当进行应用签名验证、集成第三方服务或者配置权限...

    kafka使用到的所有jar包

    在实际使用中,你还需要根据具体的应用场景选择添加其他相关的jar包,例如,如果你需要使用Kafka Connect,那么还需要连接器相关的jar包;如果涉及Avro或Schema Registry,那么可能需要包含Avro的库和Confluent的库...

Global site tag (gtag.js) - Google Analytics