-
java 如何创建项目 包 类
2018-02-15 14:44:53myeclipse-10创建项目 包 类File---->new---->java project点击Finish创建Java项目右击,new下package点击Finish点击包,new下classmyeclipse-10创建项目 包 类
File---->new---->java project
点击Finish
创建Java项目
右击,new下package
点击Finish
点击包,new下class
-
idea 2016 创建包 (为啥不能创建包类呢?)
2016-12-03 08:43:36 -
JAVA:编译运行含有包层的类、同包和不同包类的相互访问、不同包子类和父类的访问权限
2017-05-11 10:30:451.编译运行含有包层的类 java中,为了确保类名的唯一性,以及方便组织自己的代码,引入了包package。 package语句必须放在程序代码的第一行,除注释之外。 在某一程序代码的首行,如果没有package语句,代码仍然...1.编译运行含有包层的类
- java中,为了确保类名的唯一性,以及方便组织自己的代码,引入了包package。
- package语句必须放在程序代码的第一行,除注释之外。
- 在某一程序代码的首行,如果没有package语句,代码仍然可以编译,编译后的class文件被存放在默认包中,即与java文件同目录。
- 《JAVA编程思想》中这样写到:“Java将这样的文件自动看作是隶属于该目录的默认包之中,于是它们为该目录的其他文件都提供了包访问权限。”即该默认包中的其他文件是可以访问这些文件(“这样的文件”)的。
- 提供一个例子,如何编译和运行含有包层的类:
package com.access; class PrintString { void print() { System.out.println("Hello World!"); } } public class TestPackage { public static void main(String[] args) { PrintString ps = new PrintString(); ps.print(); } }
- 编译:
javac -d . TestPackage.java
其中:-d表示自动生成包层 . 表示这个包层是在当前目录下建立。 - 运行:
java com.access.TestPackage
- 输出:
Hello World!
注意:
(1)package com.access; 表示把该文件的所有的类放入com.access这个包中,并且该文件所有类的真正名字将是包名和类名的组合。例如,类TestPackage 的名字将编程com.access.TestPackage ,而不再是TestPackage 。
(2)编译时建议使用:javac -d . TestPackage.java 尽量不要使用javac TestPackage.java 因为后者要手动的建立包目录。
(3)如果不再当前路径下运行程序,则必须保证class文件的最上层目录的父目录位于classpath下。例如:包的父目录是D:\JavaProject\demo12。现在要在C:\Users\Administrator目录下运行TestPackage。实现步骤如下:
(1)设置环境变量:C:\Users\Administrator> set classpath=d:\JavaProject\demo12;
注意:classpath=d:\JavaProject\demo12这部分没有空格。
(2)运行:C:\Users\Administrator> java com.access.TestPackage
- 注意:
(a)classpath:设置的是可运行的class文件的路径。在任何路径下都可以导入包中的类,此时就需要设置classpath,
classpath:即设置的导入的类的路径
(b)set classpath:查看当前环境变量classpath的设置
(c)设置路径:set classpath=导入类文件的包的父目录; //不要把包层的目录放进去
(d)java access.ChocolateChip2解析: 先检测当前目录下是否有access这个包(包即文件夹),如果有,再检测该包下是否有access.ChocolateChip2这个类;如果没有,编译器将再去classpath设置的路径中依次查找是否有access这个包(包即文件夹),如果有,再检测该包下是否有access.ChocolateChip2这个类。如果都查找失败,则运行出错。
2.同包和不同包类的相互访问
1.同包类的相互访问
- 一个类可以使用所属包中的所有类,以及其他包中的共有类(public class)。即只有公有类才能被另外一个包访问。
- 在同一个包中,可以相互访问具有包权限的类和成员。具有包权限的类,即使其成员是公有的,也不能被其他包所访问。具体请见:JAVA——java中类的public class与class的区别详解
2.不同包类的相互访问
- 访问方式一:不使用import语句
- 在“编译运行含有包层的类”这一节中讲到,将类放入包中,类的真正的名字就变为:包名和类名的组合。
package access.cookie2; public class Cookie { public Cookie() { System.out.println("Cookie constructor"); } public void bite() { System.out.println("bite"); } }
package access; public class ChocolateChip2 { public ChocolateChip2() { System.out.println("ChocolateChip2 constructor"); } public static void main(String[] args) { ChocolateChip2 x = new ChocolateChip2(); access.cookie2.Cookie y = new access.cookie2.Cookie();//包名和类名的组合,要使用Cookie类,就必须冠以全名。 y.bite(); } }
- 编译、运行:
D:\JavaProject\demo11>javac -d . Cookie.java ChocolateChip2.java D:\JavaProject\demo11>java access.ChocolateChip2 ChocolateChip2 constructor Cookie constructor bite
- 访问方式二:使用import语句
- import:即类的导入方法,import语句是一种引用包含在包中的类的简明描述。
access.cookie2.Cookie y = new access.cookie2.Cookie();
这个写法很不简洁。一旦使用了import语句,在使用类时,就不必写出包的全名了。 - 可以使用import语句导入一个特定的类或整个包。例如:
import java.util.*;
导入java.util包中所有的类。import java.util.Date;
导入java.util包中Date这一特定类。 - import语句应该位于源文件的顶部,但是位于package语句的后面。
- 只能使用*导入一个包,而不能使用import java.*或import.java.*.*导入一个一java为前缀的所有包。
package access.cookie2; public class Cookie { public Cookie() { System.out.println("Cookie constructor"); } public void bite() { System.out.println("bite"); } }
package access; import access.cookie2.*; public class ChocolateChip2 { public ChocolateChip2() { System.out.println("ChocolateChip2 constructor"); } public static void main(String[] args) { ChocolateChip2 x = new ChocolateChip2(); Cookie y = new Cookie(); y.bite(); } }
3.不同包子类和父类的访问权限:protected 继承访问权限
- 对于默认访问权限(包访问权限)的类,可以被这个包中的其他类访问;
- 对于继承了具有包访问权限的成员的类的子类,如果该子类和父类唯一同一个包中,子类可以访问父类中的默认访问控制成员。
package access.cookie2; public class Cookie { public Cookie() { System.out.println("Cookie constructor"); } void bite() { System.out.println("bite"); } }
package access; import access.cookie2.*; public class ChocolateChip2 extends Cookie { public ChocolateChip2() { System.out.println("ChocolateChip2 constructor"); } public void chomp() { bite(); } public static void main(String[] args) { ChocolateChip2 x = new ChocolateChip2(); x.chomp(); } }
- 编译、运行:
D:\JavaProject\demo11>javac -d . Cookie.java ChocolateChip2.java ChocolateChip2.java:13: 错误: 找不到符号 bite(); ^ 符号: 方法 bite() 位置: 类 ChocolateChip2 1 个错误
- 由于子类和父类不在同一个包中,且方法bite()具有包访问权限,因此子类是访问不到成员bite()的,故编译错误。
- 将做如下改进:
package access.cookie2; public class Cookie { public Cookie() { System.out.println("Cookie constructor"); } protected void bite() { System.out.println("bite"); } }
- 编译、运行:
D:\JavaProject\demo11>javac -d . Cookie.java ChocolateChip2.java D:\JavaProject\demo11>java access.ChocolateChip2 Cookie constructor ChocolateChip2 constructor bite
原因:protected修饰的成员方法,可以被同一个包的其他类访问,同时也能被不同包中的子类访问。但是对于其他包中的类而言,却是private的。
以上是针对方法bite()没有重写的情况而言的。如果在子类对bite()进行了重写,以上的问题就不会存在了。说明子类访问的本类重写以后的方法bite,而不是父类的方法bite。
验证protected修饰的成员,不在同一个包,不存在继承时,对于其他包中的类而言,却是private的。
package access.cookie2; public class Cookie { public Cookie() { System.out.println("Cookie constructor"); } protected void bite() { System.out.println("bite"); } }
package access; import access.cookie2.*; public class ChocolateChip2 { public ChocolateChip2() { System.out.println("ChocolateChip2 constructor"); } public static void main(String[] args) { ChocolateChip2 x = new ChocolateChip2(); Cookie y = new Cookie(); y.bite(); } }
- 编译、运行:
D:\JavaProject\demo11>javac -d . Cookie.java ChocolateChip2.java ChocolateChip2.java:48: 错误: bite()可以在Cookie中访问protected y.bite(); ^ 1 个错误
-
R语言常用包分类总结
2016-05-10 19:46:34对R语言的常用包,金融包,可视化包,数据挖掘相关包进行分类整理。常用包:
——数据处理:lubridata ,plyr ,reshape2,stringr,formatR,mcmc;
——机器学习:nnet,rpart,tree,party,lars,boost,e1071,BayesTree,gafit,arules;
——可视化包:ggplot2,lattice,googleVis;
——地图包:ggmap,RgoogleMaps,rworldmap;
金融包:
——时间序列:zoo,xts,chorn,its,timeDate;
——金融分析:quantmod,RQuantLib,portfolio,PerformanceAnalytics,TTR,sde,YieldCurve;
——风险管理:parma,evd,evdbayes,evir,extRemes,ismev;
数据挖掘包:
——聚类:
——基于划分的方法: kmeans, pam, pamk, clara ;
——基于层次的方法: hclust, pvclust, agnes, diana
——基于模型的方法: mclust
——基于密度的方法: dbscan
——基于画图的方法: plotcluster, plot.hclust
——基于验证的方法: cluster.stats
——文本挖掘:tm
——分类:
——策树: rpart, ctree
——随机森林: cforest, randomForest
——回归, Logistic, Poisson,glm, predict, residuals
——生存分析: survfit, survdiff, coxph
——统计
——常用的包: Base R, nlme——方差分析: aov, anova
——密度分析: density
——假设检验: t.test, prop.test, anova, aov
——线性混合模型:lme
——主成分分析和因子分析:princomp
——优化
——最简单的:stat包中的optimize, optim 函数
——非线性优化:BB包
——线性不等式约束的非线性优化:constrOptim,adaptive barrier 算法
——非线性box约束优化:nlminb
——带约束的非线性优化:Rsolnp包中solnp函数,alabama包中的constrOptim.nl()函数
——线性规划:lpSolve 包 中的lp函数,linprog包中的 solveLP函数
——中文分词包
——Rwordseq 中文分词包
-
springboot jar包 类引用不了
2018-12-12 14:59:53我遇到的这个问题是由于打包造成的。...现在的问题是别的项目依赖了这个包之后无法引用里面的类。并且在打包时必须先compile才能install,不然install时client会报无法引用common中的类。 解决方案... -
javaweb 对于包类的命名规范
2016-05-14 19:54:35javaweb 对于包,类的命名规范 -
spring三方包类注入容器的四种方法
2019-03-20 09:13:52如果引用第三方jar包,肯定是不能直接使用常用注解@Controller、@Service、@Repository、@Component将类的实例注入到spring容器中。以下四种方法可以向spring容器中导入三方包中类实例 。 1 xml配置 这种情况大家... -
已导入jar包,但是总包类找不到的终极解决办法
2017-10-17 16:12:17找不到jar包解决办法 -
tomcat中jar包类的加载顺序
2015-10-09 10:47:01当我们启动一个tomcat的服务的时候,jar包和claess文件是是以怎么样的顺序被加载进来的? 加载顺序: ...1. $java_home/lib 目录下的...3. java -classpath/-Djava.class.path所指的目录下的类与jar包 4. $ -
【Debug】— C++ 表达式必须包含类类型
2016-09-11 12:20:58你以为你定义了一个类对象,其实你是声明了一个函数,在编译器看来; 对类对象指针采用.的方式访问其成员变量; 1. 情况 1class Test{ public: Test(){ } void foo(){ } };int main(int, char**){ Test t(); // ... -
Java动态类加载器(加载外部jar包类 读取资源文件)
2017-01-16 09:20:02* 动态类加载器 * */ public class DynamicJarClassLoader extends ClassLoader { private static Logger logger = LoggerFactory.getLogger(DynamicJarClassLoader.class); private ... -
遇见java.lang.NoClassDefFoundError错误,找不到jar包类
2012-05-17 16:32:33打开程序,运行时出现java.lang.NoClassDefFoundError,找不到一个jar包了。可奇怪的是,jar包明明在。 解决思路:找可能出现问题的各种相关路径。 解决结果:在工程目录下建立libs文件夹,放你的jar包。然后在... -
java有包名的类访问没有包名的类
2018-07-05 18:05:30今天遇见一个很有意思的问题,java中有包名的类如何访问没有包名的类(默认包),使用import等方法都不可以,后来查阅得知在java 1.4版本之后就不再支持导入默认...废话不多说,代码如下:默认包类T1public class T... -
java中包的分类和作用
2017-04-08 08:52:04包的存在1)、有利于类的查找与管理,按自己的需要给包分类,通常按功能分:vo类、dao类、工具类、service类、controller类等。2)、解决了类命名时相同的冲突,在同一文件夹里不能同时定义名字相同的两个文本文档,... -
Java 有包名的类调用没有包名的类
2015-05-22 17:58:41在java中怎样在有名包中引用无名包中的类除非都是没有包名而且在同一个文件夹下的类才能互相引用 不符合这个条件的必须有包名才能被引用 -
使用gradle打包指定类为jar包的方法
2018-07-27 13:04:22在Android studio中通过gralde脚本打包指定类的为jar包的示例脚本: 打包某个包下的所有文件 task clearJar(type: Delete) { delete 'libs/sdk.jar' } task makeJar(type:org.gradle.api.tasks.bundling.Jar)...