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
相关文章推荐
- 深入理解Java虚拟机 JVM基本框架
- Eclipse乱码怎么办
- Eclipse乱码怎么办
- 深入理解Java虚拟机 垃圾回收器GC
- 深入浅出设计模式(五):7.适配器模式
- java提高篇(十)-----强制类型转换
- Java类加载原理解析
- java增强的for循环详解
- Struts2与Spring整合
- Java基础之集合归总
- Calendar 类的应用
- Spring-MVC配置方法
- JDK 7 中的 Fork/Join 模式 简单入门
- Spring 笔记
- SpringMVC搭建
- struts2中s:iterator 标签的使用详解
- eclipse 安装反编译插件
- Java 8 学习–lambda表达式
- Java注解(1)-基础
- 40个Java多线程问题总结