java9-4 包

面试题:
package,import,class有没有顺序关系?
有。
package > import > class

Package:只能有一个
import:可以有多个
class:可以有多个,以后建议是一个

1、 包:
A:其实就是文件夹
B:作用
a:把相同的类名放到不同的包中
b:对类进行分类管理

举例:
学生:增加,删除,修改,查询
老师:增加,删除,修改,查询
...

方案1:按照功能分
cn.itcast.add
  AddStudent
  AddTeacher
cn.itcast.delete
  DeleteStudent
  DeleteTeacher
cn.itcast.update
  UpdateStudent
  UpdateTeacher
cn.itcast.find
  FindStudent
  FindTeacher

方案2:按照模块分
cn.itcast.teacher
  AddTeacher
  DeleteTeacher
  UpdateTeacher
  FindTeacher
cn.itcast.student
  AddStudent
  DeleteStudent
  UpdateStudent
  FindStudent

包的定义
package 包名;
多级包用.分开即可

注意事项:
A:package语句必须是程序的第一条可执行的代码
B:package语句在一个java文件中只能有一个
C:如果没有package,默认表示无包名

带包的编译和运行:(看了就忘了吧..用不上这两个)
A:手动式
a:编写一个带包的java文件。
b:通过javac命令编译该java文件。
c:手动创建包名。
d:把b步骤的class文件放到c步骤的最底层包
e:回到和包根目录在同一目录的地方,然后运行
带包运行。

B:自动式
a:编写一个带包的java文件。
b:javac编译的时候带上-d即可
javac -d . HelloWorld.java
c:回到和包根目录在同一目录的地方,然后运行
带包运行。

package cn.itcast;

class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}

2、 不同包下类之间的访问
A、先在一个包下创建一个类:
/*
Demo类,求和
*/
package com.liuyi;

public class Demo {
public int sum(int a,int b) {
return a + b;
}
}

B、再在另一个包下创建一个测试类

Test类,测试

导包:
  格式:import 包名;
  这种方式导入是到类的名称。
  注意:我们用谁就导谁。

  面试题:
    package,import,class有没有顺序关系?
    有。
    package > import > class

    Package:只能有一个
    import:可以有多个
    class:可以有多个,以后建议是一个

 1 package cn.itcast;
 2
 3 import com.liuyi.Demo;
 4
 5 class Test {
 6 public static void main(String[] args) {
 7 //Demo d = new Demo();
 8 /*
 9 com.liuyi.Demo d = new com.liuyi.Demo();
10 System.out.println(d.sum(10,20));
11
12 com.liuyi.Demo d2 = new com.liuyi.Demo();
13 System.out.println(d2.sum(10,20));
14
15 com.liuyi.Demo d3 = new com.liuyi.Demo();
16 System.out.println(d3.sum(10,20));
17
18 com.liuyi.Demo d4 = new com.liuyi.Demo();
19 System.out.println(d4.sum(10,20));
20 */
21
22 Demo d = new Demo();//导包后这样写
23 System.out.println(d.sum(10,20));
24 }
25 }
26
27 /*
28 第一个问题:找不到Demo 如果没import导入Demo,就找不到
29
30 第二个问题:程序包com.liuyi不存在 因为还没生成class文件,得先生成
31
32 第三个问题: Demo在com.liuyi中不是公共的; 无法从外部程序包中对其进行访问 不够权限
33 */
时间: 2024-12-08 00:04:10

java9-4 包的相关文章

Mysql 第六天 使用聚合函数查询

5.1     count()函数 SELECT COUNT(*) FROM t_grade; SELECT COUNT(*) AS total FROM t_grade; SELECT stuName,COUNT(*) FROM t_grade GROUP BY stuName; 5.2     sum函数 SELECT stuName,SUM(score) FROM t_grade WHERE stuName = '张三' SELECT stuName,SUM(score) FROM t_g

django models进行数据库增删查改

引入models的定义 from app.models import  myclass class  myclass(): aa =  models. CharField (max_length=None) bb =  models. CharField (max_length=None) def __unicode__(self): return u'%s %s' %(aa,bb) 增 添加一行数据1 add = myclass(aa='wahaha',bb='hahawa' ) add.sa

网站前端性能优化总结

一.服务器侧优化 1. 添加 Expires 或 Cache-Control 信息头  某些经常使用到.并且不会经常做改动的图片(banner.logo等等).静态文件(登录首页.说明文档等)可以设置较长的有效期(expiration date),这些HTTP头向客户端表明了文档的有效性和持久性.如果有缓存,文档就可以从缓存(除已经过期)而不是从服务器读取.接着,客户端考察缓存中的副本,看看是否过期或者失效,以决定是否必须从服务器获得更新. 各个容器都有针对的方案,,以 Apache 为例: E

Hadoop 2.x HDFS新特性

Hadoop 2.x HDFS新特性     HDFS联邦     HDFS HA(要用到zookeeper等,留在后面再讲)     HDFS快照 回顾: HDFS两层模型     Namespace: 包括目录.文件和块.它支持所有命名空间相关的文件操作,如创建.删除.修改,查看所有文件和目录.     Block Storage Service(块存储服务) 包括两部分: 1 在namenode中的块的管理:提供datanode集群的注册.心跳检测等功能.处理块的报告信息和维护块的位置信息

java9新特性-6-多版本兼容jar包

1.官方Feature 238: Multi-Release JAR Files 2.使用说明 当一个新版本的Java出现的时候,你的库用户要花费数年时间才会切换到这个新的版本.这就意味着库得去向后兼容你想要支持的最老的Java版本(许多情况下就是Java 6 或者 Java7).这实际上意味着未来的很长一段时间,你都不能在库中运用Java 9所提供的新特性.幸运的是,多版本兼容jar功能能让你创建仅在特定版本的Java环境中运行库程序选择使用的class版本. 举例1: jar root  

Java9先睹为快:JShell动手实践

如何现在开始使用Java 9最酷特性之一? 上周我终于抽出时间亲身体验了一个Java 9 的抢先体验版本.第一站就是JShell,它也被称之为Kulla项目,这就是起初驱使我鼓起勇气去尝试Java9抢先体验版的原因.没错,官方的Java 9发布时间目前定在2016年9月,但抢先体验版中已经有全功能的JShell. 新文章:Java9先睹为快:JShell编程实践——#Java REPL http://t.co/F8cQ9X5dQMpic.twitter.com/JoWR6i8PSz —— Tak

Java9新特性

Java9前几天已经发布了,在此罗列下它的主要特性 1.Java模块系统 JDK9的核心变化就是引入了一种新的Java编程组件,也就是模块.按照Oracle的说法,它是一个可命名的.自描述的代码和数据集合.模块技术的核心目标是减少Java应用和Java核心运行时环境的大小与复杂性.为此,JDK本身进行了模块化,Oracle希望通过这种方式提升性能.安全性和可维护性. 为了支持Java 9的模块,引入一种新的模块化JAR文件形式,按照这种形式会在其根目录中包含一个module-info.class

Java9模块化系统

众所周知,标准jre中rt.jar是一个重量级的文件,其不仅仅包含了java应用运行所依赖的文件,而且其自身也非常的庞大,即便是我们仅仅编写一个入门级的HelloWorld程序,依然要毫无保留的加载这个大块头.以jre7(后续版本jrd更大)为例,它就有57.2M,可以想象如此庞大的jre如何运行在小型或微型的设备上呢?或者说让我们有选择的使用一个轻量化的jre而不是jre的全部,那么要解决这个问题就要对jre中众多的类或包进行逻辑划分. 经历漫长的等待和煎熬orcale终于在java se 9

java9学习之模块化

截止到目前JDK的版本已经更新到10了,虽然java9的生命周期才半年,但是我认为这个版本带来的变革是不可磨灭的,它是第一次深层次的针对架构以及依赖上的革新.下面我们就来学习一下. 一.模块化项目构建 其实模块化本身不难理解,我们先前使用maven或者gradle就构建过多模块的项目.那么我们在java9里依然可以照猫画虎来构建一下我们的模块化项目工程.如图所示: 注意以下几点: 1.请在每个模块下创建一个叫做module-info.java的模块化描述文件 2.在idea里配置一下模块依赖,在

java9模块不可见问题

问题描述 jdk.internal.reflect包不可见 问题原因 java9模块化之后,java.base只把jdk.internal.reflect暴露给了少数几个内部包而没有向当前模块暴露. 解决方法 alt+enter IDEA会自动提示解决方案,它的解决方案只针对.idea/compiler.xml.即便直接运行程序不报错,在执行mvn compile时也会报错,说jdk.internal.reflect不可见. <component name="JavacSettings&q