您的位置:首页 > 编程语言 > Java开发

【Java学习-J.160525.0.19】Java 面向对象以及类与类的继承

2016-05-25 22:10 260 查看

面向对象

什么是对象(object)

object相当于中文语义中的‘东西’

Object是指一个具体事物的实例,比如飞机 空气等一些看得见看不见的,具体的抽象的统统是对象,总之一切皆对象。



OOA(面向对象分析)和OOD(面向对象设计)

OOAD 是现代企业中广泛使用的一种对软件进行设计与分析的一种技术。要求在设计中要映射现实世界中指定问题中的对象和实体。以最最最自然的方式表达实体(能够构建与现实世界相对应问题的模型)。

面向对象的概念

类:指一个名词 如人、厨师等

引用变量:指具体实例的代词(变量,给对象起个名字)

对象:个体实例,具体的,实例化的

行为:软件的最小单元。(方法/函数)

多态:行为或引用,在具体情形下发生变化的现象

封装:任何对象实例都要尽可能的进行封装,减少暴露。它的实现细节对你隐藏的,看不见。

继承:抽取软件的共同性进行代码的复用,减少开发成本



类的组成:

1、类的声明

2、类的属性

3、构造器

特点:

a.Java构造器声明在类的内部

b.构造器与类名要相同

c.构造器无返回值

d.构造器可以重载(名字一样,功能不一样)

e.构造器一定被调用(创建对象的时候)

f.构造器只能被调用一次

4、对象的方法

<span style="font-size:14px;">public class Book {
/**
* 在图书管理系统中有个概念 书
* 书的特征是:书号,书名,作者,价格
*/
//声明变量(全局变量,成员变量,实例变量)
long id;//书号
String name;//书名
String[] authors;//作者们
double price;//价格

public Book() {
System.out.println("调用BOOK的构造器");
}
public void print(){
</span><pre name="code" class="java"><span style="font-size:14px;">               System.out.println("调用print方法");</span>


}

}


注意的是:在创建对象的同时,JVM会隐式调用构造器,如果程序员没有手动创建构造器,JVM虚拟机会默认给当前对象创建一个无参构造器。如果程序员手动创建构造器,那么JVM虚拟机将不再提供任何构造器。

类的层级继承

特点:

1.最终的继承类一定包含所有类中的所有非私有的属性及功能2.子类一旦实例化对象,一定会递归分配父类空间并且,父类无参构造器一定会被执行。如果想要执行父类有参构造器需要super关键字去调用。 super关键字就是用来调用父类资源的。

例如有A、B、C三个类 B继承A C继承B

类A代码如下:

<span style="font-size:14px;">public class A {
int a=1;
public void print(){
System.out.println("这是A的print方法");
}
public A(){
System.out.println("这是A的无参构造器");
}

public A(int a){
System.out.println("这是A的有参构造器");
}
}</span>
类B代码如下:

public class B extends A{
int b=2;
public B(){

System.out.println("这是B的无参");

}
public B(int b){

System.out.println("这是B的有参");
}

@Override
public void print() {
System.out.println();
}
}


类C代码如下:

<span style="font-size:14px;">public class C extends B {
public C() {
System.out.println(this.a);
System.out.println(this.b);
}

public C(int a) {
super(a);
System.out.println(a);
}

public static void main(String[] args) {
C c=new C(1000);
c.print();
}

@Override
public void print() {
// TODO Auto-generated method stub
super.print();
}

}</span>


其中在类C中运行main方法,其结果如下:



(2015-5-25复习)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: