您的位置:首页 > 编程语言 > Java开发

Java中的包,类,方法

2016-01-12 19:04 330 查看
包就是一个文件夹 里面有若干个类
类就是一个Class
一个方法就像是一个函数
而且属于一个类
一个类有多个方法
而一个类属于一个包
一个包包含多个类
这种关系
我想创建一个isr的话,必须创建一个is new前面的类和new后面的类【除了父亲儿子】全一样 一个类完全可以运行的,只要有一个main方法。
new 就是创建一个内存块,
公共类里面的方法,必须生成对象,才能访问
public class A{
public void C()
{}
}
A a=new A()   所以说这地方算生成对象?
a.C();
静态类里面的方法,通过类名点方法名就可以访问
static class B{
public A()
{}
}
B.A()
java.lang包是自动引入的,不需要我们显式的加import引入。因此我们可以直接引用System、String
包(package)1.为了便于管理大型软件系统中数目众多的类,解决类命名冲突的问题,Java引入了包。跟我们在两个文件夹下存在两个相同名字的文件是一样的。2.定义包package myblog;//它必须在第一行(它之前除了注释和空白什么都不能有)注意:(1)定义了包之后,这个包内的所有类的全名就是:包名.类名(2)如果不加package语句,则指定为缺省包或无名包。(3)包对应着文件系统的目录层次。(4)在package语句中,用“.”来指明包(目录)的层次。(5)因为我们自定义的包要对应文件系统中的一个目录名,在这个目录名下面存放的是一个类,我们需要建立相应的文件夹,作为包。但是有一个问题,如果我们有成千上万的类是不是我们要手动建立成千上万的包呢?这样繁琐的事情我们还是交给java编译器吧,也就是我们在编译的时候让它自动生成包对应的系统目录,具体做法:javac -d . Test.java(-d指定在什么位置生成包。"."表示在当前目录下生成class文件)javac -d D:/ Test.java(表示在d盘的根目录下生成包;)javac -d . *.java(表示编译当前目录下所有后缀名为.java的文件。)(6)多包(多层次)大包与小包还有类的层次结构:大包.小包.类名 3.import语句(1)引入包中的类(如果我们只想引入某个包中的类)import java.io.File;(2)引入整个包import java.io.*;(①这样虽然方便,但是当我们导入包中所有的类时,java编译器就会用额外的内存来存储包中类和方法的名字,以便跟踪这个包中所有的元素,这在我们的pc机上没有太大的性能差异。然而当我们在手持设备上,一般的手持设备内存都比较小,这种方式就不太好了,更适合第一种方式想引用哪个类就具体引用哪个②当我们通过网络远程加载一个类时,如果它导入了一包中所有的类,那么在加载的时候就会把所有的类和方法加载到本地来,这就会造成java程序执行时间上的延迟。所以只有当我们需要导入这个包中很多类的时候,再用这种方式。)(3)在同一包中的类可以互相引用,无需import语句注意:java.lang包是自动引入的,不需要我们显式的加import引入。因此我们可以直接引用System、String4.类的访问说明符:级别    修饰符      同包    不同包公开    Public        Ok       Ok默认                  Ok       No 5.类的其它修饰符:(1)final(表明这个类是一个最终的类,不能由这个类派生出其他的子类比如我们熟知的String类)为了确保某个函数的行为在继承过程中保持不变,并且不能呗覆盖(overridden),可以使用final方法。为了效率上的考虑,将方法声明为final,让编译器对此方法的调用进行优化。要注意的是:编译器会自行对final方法进行判断,并决定是否进行优化,通常在方法的体积很小,而我们确实不希望它被覆盖时,才将他声明为final。class中所有的private和static方法自然就是final。(2)abstract(抽象类)①在类中没有方法体的方法,就是抽象方法。②含有抽象方法的类,即为抽象类。抽象类是不能实例化对象的。③如果一个子类没有实现(就是看该抽象方法有没有左大括号和右大括号)抽象基类中所有的抽象方法,则子类也称为一个抽象类。④我们可以将一个没有任何抽象方法的类声明为abstract,避免由这个类产生任何的对象。(3)native①native方法是用户在java中可以使用,但是不能编写的方法。②JNI(Java Native Interface),它允许java虚拟机(JVM)内部运行的java代码能够与用其它编程语言(如C C++ 汇编语言)编写的应用程序和库进行互操作。③JNI最大的好处是它没有对底层java虚拟机的实现施加任何限制,因此,java虚拟机厂商可以再不影响虚拟机其它部分的情况下添加对JNI的支持。程序员只需编写一种版本的本地(Native)应用程序和库,就能够与所有支持JNI的java虚拟机协同工作。④JNI可以理解为java和本地应用程序之间的中介。 6.方法的访问说明符:级别     修饰符     同类   同包   子类 不同包公开     Public      Ok    Ok    Ok   Ok受保护   Protected   OK    Ok    Ok   No(两个类为父类子类的关系时可以访问)默认                 Ok    Ok    No   No私有     Private     Ok    No    No   No

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: