完整版java基础jar包程序.docx
《完整版java基础jar包程序.docx》由会员分享,可在线阅读,更多相关《完整版java基础jar包程序.docx(12页珍藏版)》请在冰豆网上搜索。
完整版java基础jar包程序
/*
包:
java中的包就相当于windows文件夹。
包的作用:
1.解决类名重复产生冲突的问题。
2.便于软件版本的发布。
定义包的格式:
package包名;
包名命名规范:
包名全部小写。
包语句要注意的事项:
1.package语句必须位于java文件中中第一个语句。
2.如果一个类加上了包语句,那么该类的完整类名就是:
包名.类名
3.一个java文件只能有一个包语句。
问题:
每次编译的时候都需要自己创建一个文件夹,把对应的class文件存储到文件夹中。
烦!
!
!
javac-d指定类文件的存放路径java源文件
*/
packageaa;
classDemo1
{
publicstaticvoidmain(String[]args)
{
System.out.println("这个是Demo1的main方法...");
}
}
packagebb;
classDemo1
{
publicstaticvoidmain(String[]args)
{
System.out.println("这个是Demo2main方法..");
}
}
/*
有了包之后类与类之间的访问:
问题:
有了包之后类与类之间的访问每次都必须要写上包名!
烦!
!
!
!
解决方案:
sum提供导包语句让我们解决该问题。
导包语句作用:
简化书写。
(误区:
把一个类导入到内存中)
导包语句的格式:
import包名.类名;(导入xxx包中某个类)
导包语句要注意的细节:
1.一个java文件中可以出现多句导包语句。
2."*"是导包语句的通配符。
可以匹配任何的类名。
3.importaa.*;是不会作用于aa包下面的子包的。
推荐使用:
import包名.类名;因为使用*通配符会导致结构不清晰。
什么时候使用import语句:
1.相互访问的两个类不是在同一个包下面,这时候就需要使用到导包语句。
2.java.lang是默认导入的,不需要我们自己导入。
*/
packageaa;
publicclassDemo3
{
/*
static{
System.out.println("这个是Dmeo3的静态代码块...");
}
*/
publicvoidprint(){
System.out.println("这个是Dmeo3的print方法...");
}
}
packagebb;
importaa.Demo3;
importjava.util.Arrays;
classDemo4
{
publicstaticvoidmain(String[]args)
{
int[]arr={1,234,2};
Arrays.sort(arr);
Objecto=newObject();
Demo3d=newDemo3();
d.print();
/*
Demo5d2=newDemo5();
d2.test();
*/
}
}
packageaa;
publicclassDemo5
{
static{
System.out.println("这个是Dmeo5的静态代码块...");
}
publicvoidtest(){
System.out.println("这个是Demo5的test方法...");
}
}
/*
权限修饰符:
权限修饰符就是控制被修饰的成员的范围可见性。
public(公共)protected(受保护)default(缺省)private(大到小)
同一个类truetruetruetrue
同一个包truetruetruefalse
子父类truetruefalsefalse
不同包truefalsefalsefalse
注意:
在不同包下面只有public与protected可以访问,而且protected必须是在继承关系下才能够访问。
*/
packageaa;
publicclassDemo7
{
protectedinti=10;
}
packagebb;
importaa.Demo7;
classDemo8
{
publicstaticvoidmain(String[]args)
{
Demo7d=newDemo7();
System.out.println("i="+d.i);
}
}
/*
打jar包:
需要使用到jdk的开发工具(jar.exe).
jar的用法:
使用格式:
jarcvfjar文件的名字class文件或者是文件夹
打jar包要注意的事项:
1.一个程序打完了jar之后必须要在清单文件上指定入口类:
格式Main-Class:
包名.类名
2.jar包双击运行仅对于图形化界面的程序起作用,对控制台的程序不起作用。
jar文件的作用:
1.方便用户快速运行一个项目。
2.提供工具类以jar包的形式给别人使用。
如果使用jar包里面的类必须要先设置classpath路径。
jre=jvm+核心类库
*/
packageqq;
importjavax.swing.*;
classDemo9
{
publicstaticvoidmain(String[]args)
{
System.out.println("QQ程序..");
JFrameframe=newJFrame("QQ程序");
frame.setSize(400,500);
frame.setVisible(true);//设置窗口可见。
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
importmyutil.MyArrays;
classDemo10
{
publicstaticvoidmain(String[]args)
{
int[]arr={5,1,3,6};
System.out.println(MyArrays.toString(arr));
}
}
/*
模板模式:
解决某类事情的步骤有些是固定的,有些是会发生变化的,那么这时候我们可以
为这类事情提供一个模板代码,从而提高效率。
需求;编写一个计算程序运行时间的模板。
模板模式的步骤:
1.先写出解决该类事情其中的一件的解决方案。
2.分析代码,把会发生变化的代码抽取出来独立成一个方法。
把该方法描述成一个抽象的方法。
3.使用final修饰模板方法,防止别人重写你的模板方法。
*/
abstractclassMyRuntime{
publicfinalvoidgetTime(){
longstartTime=System.currentTimeMillis();//记录开始的时间
code();
longendTime=System.currentTimeMillis();//记录结束的时间.
System.out.println("运行时间:
"+(endTime-startTime));
}
publicabstractvoidcode();
}
classDemo11extendsMyRuntime
{
publicstaticvoidmain(String[]args)
{
Demo11d=newDemo11();
d.getTime();
}
//code方法内部就写要计算运行时间的代码;
publicvoidcode(){
inti=0;
while(i<100){
System.out.println("i="+i);
i++;
}
}
}
/*
11.目前有数组”int[]arr={11,2,4,2,10,11},
定义一个函数清除该数组的重复元素,返回的数组存储了那些非重复的元素而且数组不准浪费长度。
分析:
1.确定新数组的长度。
原数组的长度-重复元素个数
*/
importjava.util.*;
classDemo12{
publicstaticvoidmain(String[]args)
{
int[]arr={11,2,4,2,10,11};
arr=clearRepeat(arr);
System.out.println("清除重复元素的数组:
"+Arrays.toString(arr));
}
publicstaticint[]clearRepeat(int[]arr){
//先计算出重复元素的格式:
intcount=0;//记录重复元素的个数
for(inti=0;ifor(intj=i+1;jif(arr[i]==arr[j]){
count++;
break;
}
}
}
//新数组的长度
intnewLength=arr.length-count;
//创建一个新的数组
int[]newArr=newint[newLength];
intindex=0;//新数组的索引值
//遍历旧数组
for(inti=0;iinttemp=arr[i];//旧数组中的元素
booleanflag=false;//默认不是重复元素
//拿着旧数组的元素与新数组的每个元素比较一次。
for(intj=0;jif(temp==newArr[j]){
flag=true;
break;
}
}
if(flag==false){
newArr[index++]=temp;
}
}
returnnewArr;
}
}
classUser{
StringuserName;
Stringpassword;
}
classDemo13
{
publicstaticvoidmain(String[]args)
{
Scannerscanner=newScanner(System.in);
User[]users=newUser[10];
while(true){
System.out.println("请选择功能:
A(注册)B(查看用户)");
Stringoption=scanner.next();
if(option.equals("A")){
System.out.println("请输入用户名:
");
StringuserName=scanner.next();
System.out.println("请输入密码:
");
Stringpassword=scanner.next();
}elseif(option.equals("B")){
}
}
}
}
packagemyutil;
publicclassMyArrays
{
publicstaticStringtoString(int[]arr){
Stringresult="";
for(inti=0;iif(i==0){
result+="["+arr[i]+",";
}elseif(i==arr.length-1){
result+=arr[i]+"]";
}else{
result+=arr[i]+",";
}
}
returnresult;
}
}