java面向对象简单理解

来源:互联网 发布:金融互助源码 编辑:程序博客网 时间:2024/04/29 06:54

                                                                                                                        Java面向对象

    面向对象的三大特征

 

抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。

 

例如你可以把整个人类看成是Person类,而张三是一个具体的实例

Person zhangSan=new Person();  //创建张三这个人

 

 

继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要

extends关键字表示继承,java只支持单继承

Public class parent{

public  void show(){

System.out.println(“this class is  parent”);

}

}

Public class  child  extends parent{

public  void show(){

System.out.println(“this class is  child”);

}

 

Public void B(){

System.out.println(“this class is  B”);

}

 

}

 

}

 

Public  class test{

Public  static void main(String []args){

Parent  p=new Child();

P.show();//this class is  child

p.B();// 抛出异常

}

}

 

 

Parent类是父类 child类为子类,子类可以继承父类的非私有化方法和非final属性.

并且子类重写父类的方法。子类可以调用父类的方法,但是父类不可以调用子类的专有方法

 

多态:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

Public class parent{

public  void show(){

System.out.println(this class is  parent);

}

}

Public class  child  extends parent{

public  void show(){

System.out.println(this class is  child);

}

 

Public void B(){

System.out.println(this class is  B);

}

 

}

 

}

 

Public  class test{

Public  static void main(String []args){

Parent  p=new Child();//向上转型 父类引用指向子类对象

P.show();//this class is  child

p.B();// 抛出异常

 

Child  child=(Child )p; //向下转型

}

}

 

封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象

public class Person {

private Integer id;

private String name;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Person(){

}

}

封装简单的讲就是把他们的属性私有化,然后提供getset方法用来操作

 

对象的创建和生命周期

Java完全采用了动态内存分配方式,每当创建新对象时就要使用new关键字在堆中创建对象,并可以自动销毁。

0 0