包为什么存在?
开发中会出现很多类文件,当类的内容不一样,而类名重复的时候会导致在一个文件夹下只存在一个文件,一个文件夹下不允许同名—>解决方案包(java中的文件夹)
包的生成以及访问
Javac -d . PackageDemo.java pack这个文件夹会在当前目录自动生成
Java pack.PackageDemo 运行命令
包与包之间的访问
注意:
1,编译次序上:先编译被访问的包
2,被访问的类属性必须是public
3,被访问的类中的成员方法必须是public
4,不同包中的子类还可以直接访问父类中被protected权限修饰的成员
5,包与包之间可以使用的权限只有两种 public protected
6,访问权限大小比较
Public protected default private
同一个类中: OK OK OK OK
同一个包中: OK OK OK
子类: OK OK
不同包中: OK
Protected 在继承中 覆盖函数的权限要大于或等于被覆盖函数的权限
类前面加了public以后,类名一定要和文件名一致,一个java文件里面不允许出现两个或两个以上的公用类或者接口
Import关键字
package pack;
//包名所有自母小写
/*
为了简化类名的书写,使用一个关键字 import(导入)
*/
import packb.haha.heihei.*;
//把这个包里面所有类都导入, 而不能导入其中的包
//建议不要写* 需要用到包中的那个类就导入哪个类
当导入的两个包中有同名的类 当实例化类时必须加上包名以区分实例化的是哪一个类
为了不使类重名,我们这样定义包名时】
建议定义包名不要重复,可以使用url来定义
例:
packagecn.itcast.demo;
packagecn.itcast.test;
尽量保证包名的唯一性
va.lang.ArrayIndexOutOfBoundsException: 3
此错误说明该数组角标不存在
NullPointerExption
空指针异常:说明该数组名不指向数组
数组的操作
选择排序
代码:
public static void SelectSort(int[] arr)
{
for(inti=0;i<arr.length-1;i++)
{
for(intj=i+1;j<arr.length;j++)
{
if(arr[i]>arr[j])
{
inttemp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
特点:
选择排序一次后决定一个元素的最终位置
冒泡排序(在面试中比较常见)
特点:相邻的两个元素进行比较,如果符合条件就互换位置
第一圈:最值出现在最后的位置
希尔排序效率最高,面试中问的最多的是选择排序和冒泡排序(真实开发并不多见)我们用工具包,但是数据结构还是很重要的
数组中的数组
int[][] arr=new int[3][4];
//定义了一个名字为arr的二维数组 [3]为二维数组的长度[4]为一维数组的长度
---------------------- ASP.Net+Unity开发、 .Net培训、期待与您交流! ----------------------