Giskard

Java高级语法

2019-05-12

一、class与jar

class文件

在项目目录

bin里面为class文件,bin:binary,程序文件

src里面为Java文件,src:source,源代码

只要新建一个java文件,就会自动编译生成class,修改java文件,class文件也会实时进行修改,可以在Project→Build Automatically关闭。

真正运行的是class文件

在Project→Clean可以删除bin下的所有class文件,重新编译生成

jar文件

jar文件即库

如果自己写的类想发给别人怎么办

两种方法:

1、直接把java文件(源码)给出

2、jar方法:把class文件打包成jar文件,然后把jar文件添加到别的项目里,这里的jar文件,就是java里的库

右键src目录,点Export,有导出jar选项

使用jar文件

创建项目后,右键项目,new→folder

可以命名为libs

复制jar文件粘贴到libs

右键jar文件,右键选择Add to Build Path

系统jar文件

我们常用的String,ArrayList都位于系统jar文件

点开左侧JRE System Library下面的rt.jar(runtime,即运行时库)

点java即可看到各种系统类,如lang和util

二、抽象类

抽象类

Abstract Class

新建普通类后加abstract即可

public abstract class Creature
{
    //抽象方法可以没有定义和大括号
    public abstract void get();
}

抽象类不可被实例化

Creature m = new Creature();  //错误!!!!

抽象类仅用于描述一类事物

抽象类使用方法

派生出一个子类,然后实现所有的抽象方法

新建一个子类继承抽象类Creature

package mynew;

public class Monkey extends Creature
{

}
//此时发现有错误提示,要求实现父类Creature的方法

//按提示自动生成
public class Monkey extends Creature
{

    @Override
    public void get()
    {
        // TODO Auto-generated method stub

    }

}

此时在main函数中

Creature c = new Monkey();

这样的写法是正确的,定义一个父类的引用指向子类类型

常用抽象类

java.io.InputStream

java.io.OutputStream

会在文件操作章节提到

三、接口

接口概念

当一个系统与另一个系统交互时,就需要接口

接口规定了一系列功能

右键新建interface

public interface AudioOutput
{
    public void play(AudioData samples);
}

所有的方法都是抽象方法,不要写方法体,直接分号即可,必须为public

接口不能实例化

接口内只添加方法,不要添加属性

interface使用

使用与抽象类差不多,新建类

public class MyDevice implements AudioOutPut
{
    @Override
    public void play(AudioData samples)
    {
        // TODO Auto-generated method stub

    }
}

一个类可以implements多个接口

public class A implements B,C,D
{

}

四、内部类

Tags: Java