读书笔记之《Head First Java》之包和class path

静态字段和方法

用static修饰的字段称为静态字段
①普通字段在每个实例中都有自己的一个独立空间
②静态字段只有一个共享空间,所有实例都共享该字段
③推荐用类名访问静态字段,不推荐用实例变量访问(会报warning)
④可以把静态字段理解为描述class本身的字段(非实例字段)

public class Person{
	public String name;
	public int age;
	public static int number=100;
}

Person ming = new Person();
Person hong = new Person();

ming.number = 99;//warning
System.out.println(ming.number);//99

Person.number = 98;
System.out.println(Person.number);//98

用static修饰的方法称为静态方法
①调用实例方法必须通过实例变量(要有new过程)
②调用静态方法不需要实例变量直接用类名调用
③静态方法相当于其他语言当中的函数
④因为不创建实例变量,静态方法不能访问this变量
⑤静态方法不能访问实例字段,可以访问静态字段
⑥静态字段经常用于工具类如Arrays.sort() Math.random()
⑦静态方法经常用于实验方法
⑧Java程序的入口main()也是静态方法

pubilc class Person{
	public String name;
	public int age;
	public static int number = 100;
	public static getnumber(int num){
		number = num;
	}
}
Person.getnumber(999);
System.out.println(Person.number)//999

访问权限

Java的类、接口、字段和方法都可以设置访问权限
①访问权限是指在一个类的内部,能否引用到另一个类以及访问它的字段和方法
②访问权限有public、private、protected和package四种
③定义为public的class、method、field和interface可以被其他类访问
④定义为private的类无法被其他的类访问
⑤访问private被限定在外层class内部
⑥定义在一个class里面的class称为内部类(inner class)

public class Hello{
	public void hi{
	}
	private void hey{
	}
}
class Main{
	void fun{
	Hello h = new Hello();
	h.hi();//调用了public的类当中的public方法
	h.hey();//编译器报错
	}
}

⑦protected作用于继承关系,表明除内部外还可被子类访问
⑧定义为package的类允许访问同一个包中同为package类型(无public,private修饰)的类以及同一个包中没有public、protected、private修饰的字段和方法

package abc
class Hello{
	protected void hi{
	}
	void hey{
	}
}
class nihao extends Hello{//继承自Hello
	Hello H = new nihao();
	H.hi();//可以调用父类中protected的方法
	}
}
package xyz//改成abc下面就不会报错了
class Main{
	void fun{
	Hello h = new Hello();//编译器报错,无法调用另一包中的方法
	h.hey();
	}
}	
如果不确定是否需要public,就不声明为public,即尽可能减少对外暴露
final与访问权限不冲突
一个 .Java文件只能包含一个public class但可以包含多个非public class

classpath

①class path是一个环境变量
②class path指示虚拟机(JVM)如何搜索class
③class path设置的搜索路径和操作系统有关

jar包

①jar包是zip格式压缩文件,包含若干class文件
②使用jar包能避免大量的目录和class文件
如何创建jar包
①使用jdk自带的jar命令,使用构建工具如Maven等
②压缩后改成 .jar 文件
③在命令提示符中调用main函数(META-INF\MANIFEST.MF可以提供jar包的信息)~其实这里我看的一脸懵逼,但还是记了笔记到时候再理解理解

发布了85 篇原创文章 · 获赞 10 · 访问量 3716

猜你喜欢

转载自blog.csdn.net/LebronGod/article/details/104596408