【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

    java号称是最面向对象的语言。诚然,java克服了很多c++的缺点,同时兼具虚拟机、垃圾回收、跨平台等很多优点,java的确是一门非常优秀的语言。因此,我们有必要好好的说一说java的类特性。

1、主类和普通类

    java文件的特点,决定了文件名和主类必须是一样的。假设文件是node.java,那么主类一定是public class node。至于其他的class只能是普通类。

class parent {

}

public class node {
	public static void main(String[] args){
		return;
	}
}

2、类函数和成员函数

    如果函数可以通过类名可以直接访问,那么这个函数肯定是类函数,也就是static函数。当然,如果函数需要类实例化后才能访问,那么就是普通的成员函数。

public class node {

	public int process(){
		return 1;
	}

	public static void main(String[] args){
		return;
	}
}

3、继承、封装、多态

    继承、封装、多态是面向对象的基本特性。这一点在java上面表现得淋漓尽致,因为几乎所有的文件都是类,连通用函数也被设计成static函数。

class parent {
	String name;

	public void parent(String name){
		this.name = name;
	}

	public void show(){
		System.out.println("parent");
	}
}

class child extends parent{

	public void show() {
		System.out.println("child");
	}
}

4、abstract类

    abstract类是不能实例化的类,它一般由abstract function和普通function构成。有了abstract function,我们可以将那些需要定制化的function放到子类来处理。

abstract class parent {
	String name;

	public void parent(String name){
		this.name = name;
	}

	abstract public void show();
}

class child extends parent{

	@Override
	public void show() {
		System.out.println("child");
	}
}

5、interface类型

    interface类型可以看成是abstract类的升级版。interface中的函数不允许实现。且interface中不允许出现成员变量,同一个子类可以实现多个interface,使用起来非常方便。这也相当于从另外一个角度实现了多重继承的功能。

interface process {

	public void show();
}

class child implements process{

	@Override
	public void show() {
		System.out.println("child");
	}
}

6、内部类

    内部类,是指那些可以在function、class、public class内部定义的类。这些类一般用于本文件使用,主要是为了本地的数据管理使用,不对外公开。

class parent {

	class inner {
		
	}
}

7、匿名类

    对于某一些只使用一次的子类,我们可以直接用匿名类进行编写。匿名类相当于一般的子类,只是我们使用的时候一般直接进行new处理,这相当于不需要对子类重新命名了,故由此得名而来。

class parent {

	class inner {
		void show() {}
	}

	inner i = new inner(){
		void show() {
			System.out.println("show");
		}
	};
}

8、异常类

    异常类主要是以Exception为基础的类型,它主要用来处理NULL指针、除0运算、键盘中断、文件读取失败等异常。异常一般需要在function中显示进行throw处理。

public class node {

	public static void main(String[] args){

		try{
			int a = 5/0;
		}catch(Exception e){

		}
		return;
	}
}

9、类的泛型处理

    类的泛型处理,这一点有点像c++下面的template。java下面除了String、StringBuffer、IO、File、InputStream、OutputStream这些类之外,就属Array、Set、Hash、Map这些泛型类用的最多,建议大家好好掌握。

class generic<E>{
	
}

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐