Java的特点

Java的特点

1.面向对象

Java面向对象的几个特征分别为:封装、继承、抽象、多态。

(1)封装

Java中的封装是指一个类把自己内部的实现细节进行隐藏。只暴露对外的接口(setter和getter方法)。封装又分为属性的封装和方法的封装。把属性定义为私有的,他们通过setter和getter方法方法来对属性的值进行设定和获取。把对象的全部属性和全部功能结合在一起,形成不可分割的独立的单位(对象);信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界[或者说形成一道屏障],只保留有限的对外接口使之与外部发生联系。
封装的优点:使对象意外的部分不能随意存取对象内部的数据,有效避免交叉感染,使软件错误局部化,减少查错和排错的难度。

public class Person{

	private int id;
	private String name;
	private Person person;

	public int getId(){
		return id;
	}
	public void setId(int id){
		this.id = id;
	}
	public String getName(){
		return name;
	}
	public void setName(String name){
		this.name = name;
	}
	public Person getPerson(){
		return person;
	}
	public void setPerson(Person person){
		this.person = person;
	}
}

在Person类中,定义了三个全局变量,分别为id、name、person,它们的访问修饰符都是private私有的,通过setter和getter方法对这些变量进行设值以及取值。那么这么做有什么好处呢?封装的意义就是增强类的信息隐藏与模块化,提高安全性。封装的主要作用也是对外部隐藏具体的实现细节,增加程序的安全性。

(2)继承

使用一个特殊类拥有其全部的属性和功能。作为父类,它可以有多个子类,一般的类去实现,比如:父类为人,子类可以是男人和女人,男和女都继承于父类,但是一个子类只能继承一个特殊类,不能继承多个。但一个一般类可以实现多个接口。子类继承父类的时候,可以重写父类的方法,也可以有自己的方法。
继承的好处是实现代码的复用以及扩展,子类通过父类代码的复用,可以不用再定义父类中已经定义的全局变量,方法上直接对父类方法进行重写实现了扩展。

(3)抽象

Java中抽象可以是抽象类、抽象方法,使用abstract修饰。其中抽象类中可以有抽象方法和非抽象方法,具有抽象方法的类一定是抽象类。抽象方法一般只有方法名,没有方法的实现。如:

public abstract void test();

且抽象方法的权限修饰必须是protected public的,因为子类在继承抽象父类的时候,必须要实现父类所有的抽象方法。

(4)多态

多态就是指多种状态,就是说当一个操作在不同的对象时,会产生不同的结果。
在Java中,实现多态的方式有两种,一种是编译时的多态,另外一种是运行时的多态,编译时多态是通过方法的重载实现的,而运行时多态是通过方法的重写实现的。
方法的重载是指在同一个类中,有多个方法名相同的方法,但是这些方法有着不同的参数列表,在编译期我们就可以确定到底调用哪个方法。
方法的重写,子类重写父类中的方法(包括接口的实现),父类的引用不仅可以指向父类的对象,而且还可以指向子类的对象。当父类的引用指向子类的引用时,只有在运行时才能确定调用哪个方法。
其实在运行时多态的实现,需要满足三个条件:1)继承2)重写3)父类对象引用指向子类对象,并且,我们说的多态都是类中方法的多态,属性是没有多态性的。方发的重载我这里就不举例说明了,我说一下运行时的多态。
接口:

package Review.duotai;

public interface Animal {
	
	public void shout();

}

实现类:

package Review.duotai;

public class Dog implements Animal {

	@Override
	public void shout() {
		System.out.println("wangwang...");
	}

}

实现类:

package Review.duotai;

public class Cat implements Animal {

	@Override
	public void shout() {
		System.out.println("miaomiao...");
	}

}

测试:

package Review.duotai;

public class Test {
	
	public static void main(String[] args) {
		
		Animal d = new Dog();
		animalShout(d);
		
		Animal c =  new Cat();
		animalShout(c);
		
	}
	public static void animalShout(Animal animal) {
		
		animal.shout();
		
	}

}

多态优点:
①可替换性(substitutability):多态对已存在代码具有可替换性。
②可扩充性(extensibility):多态对代码具有可扩充性。
③接口性(interface-ability):多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。
④灵活性(flexibility):它在应用中体现了灵活多样的操作,提高了使用效率。
⑤简化性(simplicity):多态简化对应用软件的代码编写和修改过程。

2.简单容易

Java系统所占空间很小,语言风格类似C++,但是相对于C语言/C++来说,语法简单了不少,Java弱化了指针地址*p的概念,不再说指针,而是使用了引用的概念来解释指针。

3.代码开源

4.代码安全

5.GC(垃圾回收机制)Garbage Collection

java的语法限制了源程序的安全性,首先编译器会进行源代码的第一步检查。GC垃圾回收机制,通过轮询机制发现垃圾空间(没有在使用空间)就释放掉OC引用计数机制,在使用的空间下被使用时就会被系统自动释放。

6.跨平台(OS);一处编写,到处运行(writer one run anywhere)

Java程序在不同的平台上都可以运行,写一份代码使用不同的平台,其实Java代码不能直接运行,需要一个编译过程(java开发流程)。首先编辑java源程序,将.java文件编译成.class字节码文件,.class文件是运行在java虚拟机上的,通过java虚拟机把.class文件最终翻译成操作系统能处理的指令,只要操作系统安装了java虚拟机,就可以做到java在各个平台的java虚拟机上运行。
java跨平台的前提条件:
JRE:Java Runtime Environment

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值