JAVA的几大特性
PS:最近一直在出差,没怎么有时间写,现在来补上JAVA的几大特点。为什么说JAVA的几大特性,我觉得光说JAVA语言特性有大概3个,分别是封装,继承,多态。如果加上面向对象这种概念就会有个抽象,因为抽象这特点是所有面向对象语言都应有的。下面我来分别介绍下,当然有一些基本概念还是百度百科上的。。。
- 封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。封装是一种信息隐藏技术,在java中通过关键字private,protected和public实现封装。什么是封装?封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。 适当的封装可以让程式码更容易理解和维护,也加强了程式码的安全性。 一般来说经常接触封装就是类的封装,方法的封装等。比如:来个例子看看;
public class People
{
//其中姓名,年龄都是私有属性,外部只能通过get方法访问
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
再来看个方法的封装:
//打印一个人name
public void showName() {
//相应的实现
People people = new People();
String name = people.getName();
System.out.println(name);
}
public static void main(String[] args)
{
showName();
}
其他人只需要知道这个方法是打印一个人的名字,然后调用得到自己的结果就行,具体这个方法怎么实现是不需要管的。(类木有写完,只是体现封装的大体意思)。
- 继承: 继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。 Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。 同样给个例子来看看:
class A{
//成员变量name
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void showName(){
System.out.println(name);
}
}
//B继承A
class B extends A{
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void showAge(){
System.out.println(age);
}
}
public static void main(String[] args)
{
A a = new A();
B b = new B();
//调用B类show年龄的方法
b.showAge();
//因为B继承了A,B也有A的name属性,也能调用A的方法。
b.showName();
}
这里就只体现了继承,简单来说,继承就是子类能拥有父类的属性和方法,可以调用。- 多态: 按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作 多态的话,我觉得是更好的利用了继承这一特性,然后为什么能实现多态,因为可以重写父类的方法。说重写可能不清楚,具体来说就是子类父类可以存在分别存在名字相同的属性或者方法,然后可视声明的类去调用相应的方法等。看下下面这个例子: 将上面的class B修改一下
//B继承A
class B extends A{
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void showAge(){
System.out.println(age);
}
public void showName(){
//显示姓名年龄
//这里的super.name是调用父类的name
System.out.println(super.name+age);
}
}
public static void main(String[] args)
{
A a = new A();
B b = new B();
//调用B类show年龄的方法
b.showAge();
//调用的是A类自己显示名字的方法
a.showName();
//因为B重写了A的showName()方法,显示的就是姓名加年龄
b.showName();
}
这里只是对多态粗略介绍,当然还有更多对多态的衍生,这个以后遇到再说,现在让大家了解下分别是什么作用。- 抽象:
抽象是通过分析与综合的途径,运用概念在人脑中再现对象的质和本质的方法,我觉得理解成一种方法比较好。就是我们通过对事物的认知,将某一或者一类事物的属性变化成JAVA语言能识别的类(你可以把一个基础的类看成一个事物,这个类的属性就等于这个事物的的属性)。
举个例子吧,比如我现在要做一个人员作主体的系统,那么我需要把现实生活的人抽象成一个基础的实体类功能程序识别,我会声明一个people的类,这个类包含了name(名字),age(年龄),sn(身份证),sex(性别),height (身高),等等属性,这些属性基本都是我们现实生活中都有的标签。类抽象好了,就是封装,继承,根据业务进行相应功能逻辑实现。
最后我觉得java的开发吧,就是通过对现实社会当中的实际需求进行抽象,然后封装成类,然后根据业务需求进行基础继承,多态实现更多的类,再调用这些类进行业务逻辑编写代码,以实现解决生活中的软件需求。大概过程是这样,但是其中肯定会有一些技术问题,以后我会写一些,我开发过程中遇到的技术问题,比如SpringMvc,hibernate框架,socket心跳问题,google地图的使用,还有数据库的相关问题等等。。。