java基础jar包程序
System.out.println("请输入密码:");
String password = scanner.next();
}else if(option.equals("B")){
}
}
}
}
package myutil;
public class MyArrays
{
public static String toString(int[] arr){
分析:
1.确定新数组的长度。原数组的长度-重复元素个数
*/
import java.util.*;
class Demo12 {
public static void main(String[] args)
{
int[] arr = {11,2, 4, 2, 10, 11};
arr = clearRepeat(arr);
模板模式的步骤:
1.先写出解决该类事情其中的一件的解决方案。
2.分析代码,把会发生变化的代码抽取出来独立成一个方法。把该方法描述成一个抽象的方法。
3.使用final修饰模板方法,防止别人重写你的模板方法。
*/
abstract class MyRuntime{
public final void getTime(){
public class Demo3
{
/*
static{
System.out.println("这个是Dmeo3的静态代码块...");
}
*/
public void print(){
System.out.println("这个是Dmeo3的print方法...");
}
}
package bb;
import aa.Demo3;
/*
包:
java中的包就相当于windows文件夹。
包的作用:
1.解决类名重复产生冲突的问题。
2.便于软件版本的发布。
定义包的格式:
package包名;
包名命名规范:包名全部小写。
包语句要注意的事项:
1. package语句必须位于java文件中中第一个语句。
2.如果一个类加上了包语句,那么该类的完整类名就是:包名.类名
不同包true false false false
注意:在不同包下面只有public与protected可以访问,而且protected必须是在继承关系下才能够访问。
*/
package aa;
public class Demo7
{
protected int i =10;
}
package bb;
import aa.Demo7;
3.一个java文件只能有一个包语句。
问题:每次编译的时候都需要自己创建一个文件夹,把对应的class文件存储到文件夹中。烦!!!
javac -d指定类文件的存放路径java源文件
*/
package aa;
class Demo1
{
public static void main(String[] args)
String userName;
String password;
}
class Demo13
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
User[] users = new User[10];
}
public abstract void code();
}
class Demo11 extends MyRuntime
{
public static void main(String[] args)
{
Demo11 d = new Demo11();
d.getTime();
}
//code方法内部就写要计算运行时间的代码;
打jar包要注意的事项:
1.一个程序打完了jar之后必须要在清单文件上指定入口类:格式Main-Class:包名.类名
2. jar包双击运行仅对于图形化界面的程序起作用,对控制台的程序不起作用。
jar文件的作用:
1.方便用户快速运行一个项目。
2.提供工具类以jar包的形式给别人使用。
如果使用jar包里面的类必须要先设置classpath路径。
String result = "";
for(int i = 0 ; i < arr.length ; i++){
if(i==0){
result +="["+ arr[i]+",";
}else if(i==arr.length-1){
result += arr[i]+"]";
}else{
result += arr[i]+",";
d.print();
/*
Demo5 d2 = new Demo5();
d2.test();
*/
}
}
package aa;
public class Demo5
{
static{
System.out.println("这个是Dmeo5的静态代码块...");
}
public void test(){
System.out.println("这个是Demo5的test方法...");
long startTime = System.currentTimeMillis();//记录开始的时间
code();
long endTime = System.currentTimeMillis(); //记录结束的时间.
System.out.println("运行时间:"+ (endTime-startTime));
for(int j = i+1 ; j<arr.length ; j++){
if(arr[i]==arr[j]){
count++;
break;
}
}
}
//新数组的长度
int newLength = arr.length - count;
//创建一个新的数组
int[] newArr = new int[newLength];
}
}
return result;
}
}
{
System.out.println("这个是Demo1的main方法...");
}
}
package bb;
class Demo1
{
public static void main(String[] args)
{
System.out.println("这个是Demo2main方法..");
}
}
/*
有了包之后类与类之间的访问:
{
int[] arr = {5,1,3,6};
System.out.println(MyArrays.toString(arr));
}
}
/*
模板模式:解决某类事情的步骤有些是固定的,有些是会发生变化的,那么这时候我们可以
为这类事情提供一个模板代码,从而提高效率。
需求;编写一个计算程序运行时间的模板。
System.out.println("清除重复元素的数组:"+ Arrays.toString(arr));
}
public static int[] clearRepeat(int[] arr){
//先计算出重复元素的格式:
int count = 0; //记录重复元素的个数
for(int i = 0 ; i < arr.length-1 ; i++){
int index = 0 ;//新数组的索引值
//遍历旧数组
for(int i = 0 ; i< arr.length ; i++){
int temp = arr[i]; //旧数组中的元素
boolean flag = false; //默认不是重复元素
//拿着旧数组的元素与新数组的每个元素比较一次。
}
}
/*
权限修饰符:权限修饰符就是控制被修饰的成员的范围可见性。
public(公共) protected(受保护) default(缺省) private (大到小)
同一个类true true true true
同一个包true true true false
子父类true true false false
frame.setSize(400,500);
frame.setVisible(true); //设置窗口可见。
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
import myutil.MyArrays;
class Demo10
{
public static void main(String[] args)
class Demo8
{
public static void main(String[] args)
{
Demo7 d = new Demo7();
System.out.println("i="+d.i);