java学习3--Java 中包的概念,类的说明符与内部类
2012-02-16 20:31
239 查看
1、包
package mybo;
mybo包下的类在硬盘上都存在mybo的文件夹下,执行类时需要确定文件夹路径。
2、类的说明符
类的访问说明符:public default
public的类可以被包外的包里的类访问,default的类只能被同一包下的类访问。
类的其他修饰符:final ,abstract
final的类不能被继承。
3、方法的说明符
public ,protected,default ,private
同类:这四类方法都可以进行访问
同包不同类:只有private的方法不能被访问
不同包但是之间有父子关系的:只有public,protected的方法才可以访问
通用的,不同包也不存在继承关系的:只有public的可以访问
其他的方法修饰符:
static final native abstract ,synchronized
final的方法:为了确保某个方法在被继承过程中被子类覆盖或者修改,那就声明为final
class中的所有的private和static方法都是final的。
4、抽象方法和抽象类
抽象方法没有函数体。
抽象类不能进行实例化对象。
5、垃圾回收
finalize()函数,垃圾收集器在执行前会调动此函数,一般垃圾回收再虚拟机中以低线程执行,只要当内存感觉不够的时候才会允许垃圾收集器。
6、接口
接口的方法都是默认的public abstract的,所以我们在实现一个接口时,需要用public声明。
在接口中声明方法时,不能使用native static final private protected synchronized.
接口可以用public default修饰
接口可以用数据成员,这些数据成员默认是public static final 即共有的静态常量。
7、内部类
在一个类中定义另一个类叫做内部类,
内部类可以将逻辑上相关的类串联起来。并由外部类控制内部类的可见性。
内部类字节码的文件名:外部类名¥内部类名组成
当我们创建了一个内部类,其对象就拥有了与外部类对象的一直关系,这是通过一直特殊的this reference形成的。
(使用new创建的对象保存在堆内存中,其引用保存在栈内存中,)
内部类可以访问外部类的所有的成员,主要有你对象中保存了外部类的this对象。
内部类访问自身的成员变量:this.X,访问外部类的成员变量:O.this.X(o是外部类,y是内部类名)
内部类不能用new 去直接创建,而是o.new y() (o=new O())
内部类的修饰内同于类中的方法(public,protect default private。。。)
当内部类被定义为static时,我们就不需要声明外部类的对象了,就可以直接访问内部类,同时内部类不能访问外部类的非静态方法和变量了。
没有用static修饰内部类时,其不能有静态的方法。
内部类的继承: 派生类在产生对象时会去先调用父类的构造函数,这就需要内部类的对象,而内部类的对象需要先产生外部类,从而建立内部类到外部类的引用关系,
故派生类的构造函数需要传入外部类的对象,然后通过外部类对象.super()方式来建立从内部类对象到指定外部类的引用关系,例如:
8、异常处理
对于一般可能存在发生异常的方法,通常在方法后面throws exception 来抛出异常。而在调用方法时抛出的异常需要去捕获否则编译出错,当然也可以再次抛出将异常抛给其他方法。
语法:try/catch/catch..../finally,finally的语句无论有没有发生异常都会执行。
System.exite
package mybo;
mybo包下的类在硬盘上都存在mybo的文件夹下,执行类时需要确定文件夹路径。
2、类的说明符
类的访问说明符:public default
public的类可以被包外的包里的类访问,default的类只能被同一包下的类访问。
类的其他修饰符:final ,abstract
final的类不能被继承。
3、方法的说明符
public ,protected,default ,private
同类:这四类方法都可以进行访问
同包不同类:只有private的方法不能被访问
不同包但是之间有父子关系的:只有public,protected的方法才可以访问
通用的,不同包也不存在继承关系的:只有public的可以访问
其他的方法修饰符:
static final native abstract ,synchronized
final的方法:为了确保某个方法在被继承过程中被子类覆盖或者修改,那就声明为final
class中的所有的private和static方法都是final的。
4、抽象方法和抽象类
抽象方法没有函数体。
抽象类不能进行实例化对象。
5、垃圾回收
finalize()函数,垃圾收集器在执行前会调动此函数,一般垃圾回收再虚拟机中以低线程执行,只要当内存感觉不够的时候才会允许垃圾收集器。
6、接口
接口的方法都是默认的public abstract的,所以我们在实现一个接口时,需要用public声明。
在接口中声明方法时,不能使用native static final private protected synchronized.
接口可以用public default修饰
接口可以用数据成员,这些数据成员默认是public static final 即共有的静态常量。
7、内部类
在一个类中定义另一个类叫做内部类,
内部类可以将逻辑上相关的类串联起来。并由外部类控制内部类的可见性。
内部类字节码的文件名:外部类名¥内部类名组成
当我们创建了一个内部类,其对象就拥有了与外部类对象的一直关系,这是通过一直特殊的this reference形成的。
(使用new创建的对象保存在堆内存中,其引用保存在栈内存中,)
内部类可以访问外部类的所有的成员,主要有你对象中保存了外部类的this对象。
内部类访问自身的成员变量:this.X,访问外部类的成员变量:O.this.X(o是外部类,y是内部类名)
内部类不能用new 去直接创建,而是o.new y() (o=new O())
内部类的修饰内同于类中的方法(public,protect default private。。。)
当内部类被定义为static时,我们就不需要声明外部类的对象了,就可以直接访问内部类,同时内部类不能访问外部类的非静态方法和变量了。
没有用static修饰内部类时,其不能有静态的方法。
内部类的继承: 派生类在产生对象时会去先调用父类的构造函数,这就需要内部类的对象,而内部类的对象需要先产生外部类,从而建立内部类到外部类的引用关系,
故派生类的构造函数需要传入外部类的对象,然后通过外部类对象.super()方式来建立从内部类对象到指定外部类的引用关系,例如:
public class test extends outer.inner{ /** * @param args */ test(outer io) { io.super(); } public static void main(String[] args) { // TODO Auto-generated method stub outer ou=new outer(); test ts=new test(ou); } }
8、异常处理
对于一般可能存在发生异常的方法,通常在方法后面throws exception 来抛出异常。而在调用方法时抛出的异常需要去捕获否则编译出错,当然也可以再次抛出将异常抛给其他方法。
语法:try/catch/catch..../finally,finally的语句无论有没有发生异常都会执行。
System.exite
相关文章推荐
- java孙鑫 第三课 Java 中包的概念,类的说明符与内部类
- 学习Java的30个基本概念
- java学习笔记——内部类
- 2)Java学习笔记:匿名内部类
- Java基础学习总结(69)——匿名内部类与Lambda表达式
- java学习笔记-接口与内部类
- Java学习笔记【内部类】
- JAVA-内部类的基本概念
- java基础学习之集合概念总结
- Java学习总结3——多态1(多态的概念)
- Java 内部类学习
- Java----再学习-----Java基本概念
- java 内部类学习
- Java学习—面向对象概念
- java学习之匿名内部类与包装类
- Java 基础巩固:内部类的字节码学习和实战使用场景
- C#学习基本概念之数据类型(2)---(C#与Java)
- Java基础-学习Java的30个基本概念
- java学习之旅26--api文档_package的概念_生成自己项目的api文档
- 学习Java的30个基本概念