java学习01

 

1.JDK即java development kit,java开发工具包。

2.java特性

简单性(语言类似C和C++,没有指针、结构、内存管理、枚举,丰富的类库)、面向对象(封装性、继承性、多态)、跨平台(JVM半解释半编译)、多线程、健壮(强类型、提供内存管理即垃圾回收机制)、安全(删除了指针和释放内存管理,安全体系架构)、解释的

3、方法访问控制

 publicprotectdefaultprivate
同类可以可以可以可以
同包可以可以可以 
子类(不同包)可以可以  
通用性可以   
4、接口

   接口中所有的方法都是public abstract。
   在接口中声明方法时,不能使用native、static 、final 、synchronized 、private 、protected等修饰符。

   一个接口可以继承自另一个接口。java中不允许类的多继承,但允许接口的多继承。


   接口中可以有数据成员,这些成员默认都是public static final。

   接口中的数据成员的访问方式

interface Math
{
	double PI=3.1415926;	
}

class Arithmetic implements Math
{
	double roundArea(double radius)
	{
		return PI*radius*radius;		
	}
}

class Student
{
	public static void main(String[] args)
	{
		Arithmetic a=new Arithmetic();
		System.out.println(a.roundArea(3));
		System.out.println(Math.PI);
		System.out.println(Arithmetic.PI);
		System.out.println(a.PI);
	}
}
5、final方法

为了确保某个方法在继承过程中保持不变且不能被覆盖,可以使用final方法。为了效率上的考虑,将方法声明为final,让编译器对此方法的调用进行优化。要注意的是:编译器会自行对final方法进行判断,并决定是否进行优化。通常在方法的体积很小,而我们确实不希望它被覆盖时,才将它声明为final。
class中所有的private和static方法自然就是final。

6、抽象方法和抽象类

在类中没有方法体的方法,就是抽象方法。
含有抽象方法的类,即为抽象类。
如果一个子类没有实现抽象基类中所有的抽象方法,则子类也成为一个抽象类。
我们可以将一个没有任何抽象方法的类声明为abstract,避免由这个类产生任何的对象。
构造方法、静态方法、私有方法、final方法不能被声明为抽象的方法。

7、内部类

在类中没有方法体的方法,就是抽象方法。
含有抽象方法的类,即为抽象类。
如果一个子类没有实现抽象基类中所有的抽象方法,则子类也成为一个抽象类。
我们可以将一个没有任何抽象方法的类声明为abstract,避免由这个类产生任何的对象。
构造方法、静态方法、私有方法、final方法不能被声明为抽象的方法。

class Outer{
    private int index=100;
    void print()    {
        Inner i=new Inner();
        i.print();
    }
    class Inner{
        void print(){
            System.out.println(index);
        }
    }
}
class Test{
    public static void main(String[] args){
        Outer o=new Outer();
        o.print();

//o.new Inner().prin();-----------right
    //new Oter().new Inner().prin();--------right
    //new Oter.Inner().prin();----------wrong
    }
}

在方法中定义的内部类,如果要访问方法中定义的本地变量或方法的参数,则变量必须被声明final。
内部类可以声明为private或protected;还可以声明为abstract或final。
内部类可以声明为static的,但此时就不能再使用外部类的非static的成员变量和非static的成员方法;
非static的内部类中的成员不能声明为static的,只有在顶层类或static的内部类中才可声明static成员。

我们为什么使用内部类
1、在内部类(inner class)中,可以随意的访问外部类的成员,这可以让我们更好地组织管理我们的代码,增强代码的可读性。
2、内部类可以用于创建适配器类,适配器类是用于实现接口的类。使用内部类来实现接口,可以更好地定位与接口关联的方法在代码中的位置。
3、内部类的更多用法。

8、异常类
打开一个不存在的文件、网络连接中断、数组下标越界、正在加载的类文件丢失等都会引发异常。
Java中的异常类定义了程序中遇到的轻微的错误条件。
Java中的错误类定义了程序中不能恢复的严重错误条件。如内存溢出、类文件格式错误等。这一类错误由Java运行系统处理,不需要我们去处理。

打开一个不存在的文件、网络连接中断、数组下标越界、正在加载的类文件丢失等都会引发异常。
Java中的异常类定义了程序中遇到的轻微的错误条件。
Java中的错误类定义了程序中不能恢复的严重错误条件。如内存溢出、类文件格式错误等。这一类错误由Java运行系统处理,不需要我们去处理。

Java程序在执行过程中如出现异常,会自动生成一个异常类对象,该异常对象将被提交给Java运行时系统,这个过程称为抛出(throw)异常。
当Java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常。
如果Java运行时系统找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。
try/catch/finally语句。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值