ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java面向对象

2019-03-07 10:54:39  阅读:178  来源: 互联网

标签:java 变量 子类 成员 接口 面向对象 父类 方法


类和对象的区别

概念:类是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体

局部变量和成员变量区别

区别一:定义的位置不同

定义在类中的变量是成员变量

定义在方法中或者{}语句里面的变量是局部变量

区别二:在内存中的位置不同

成员变量存储在堆内存的对象中

局部变量存储在栈内存的方法中

区别三:生命周期不同

成员变量随着对象的出现而出现在堆中,随着对象的消失而从堆中消失

局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失

区别四:初始化不同

成员变量因为在堆内存中,所有默认的初始化值

局部变量没有默认的初始化值,必须手动的给其赋值才可以使用。

 

面向对象的三个特征:

 

封装,继承,多态。

 

封装:

l   封装的好处:

n   1、提高了代码的复用性。

n   2、隐藏了实现细节,对外提供可以访问的方式。便于调用者的使用。

n   3、提高了安全性。

 

private 私有: 不允许修改

 

this哪个对象调用了this所在的方法,this就代表哪个对象。

 

继承:

类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方法。

 

extends  继承

格式:class 子类 extends 父类 {}

特点:

当出现同名成员变量时,如果子类有,则继承子类,如果子类没有,则继承父类的

 

super  代表父类对象

在子类中若要访问父类中的成员变量,必须使用关键字super来完成。super用来表示当前对象中包含的父类对象空间的引用。

格式:super.父类中的成员变量

所有类的隐形父类叫Object

 

方法重写:

子类方法覆盖父类方法,必须保证权限大于父类权限。

写法:返回类型 方法名 参数列表必须一样

 

抽象类:

abstract

抽象方法定义的格式:

public abstract 返回值类型 方法名(参数);

抽象类定义的格式:

abstract class 类名 {

}

 

1抽象类一定是个父类

2抽象类中可以不定义抽象方法

3抽象关键字abstract不可以和private/私有  共存

 

接口:

概念:接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”。

接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成。这样将功能的定义与实现分离,优化了程序设计。

 

接口的定义:

使用interface代替了原来的class,其他步骤与定义类相同:

l   接口中的方法均为公共访问的抽象方法

l   接口中无法定义普通的成员变量

 

接口中所有成员变量修饰符 public static final

static 静态:只要被static修饰的成员 在外界可以直接通过 类名.成员 调用

被final 修饰的变量叫常量,不能改变

 

在接口中 所有方法的修饰符都是 public abstract

 

类实现接口:implements

 

格式:

class 类 implements 接口 {

    重写接口中方法

}

 

 

多态:

父类引用对象指向子类对象

    父类类型  变量名 =new 子类类型();

   

父类引用指向子类对象成员变量特点:编译运行都看左边

    编译看父类,如果父类有,则运行时访问父类的成员变量

    如果父类没有 编译失败

 

    成员方法特点 :编译看左边 运行看右边

    编译看父类,如果父类有,则编译成功,运行时子类重写后的方法;

    如果父类没有,则编译失败

 

    Pe pe=new St();//向上转型

    System.out.println(pe.a);

   

向下转型:一个已经向上转型的子类对象可以使用强制类型转换的格式,将父类引用转为子类引用

    向下转型后  就可以调用子类独有的方法

      

    instanceof 判断

  pe instanceof Pe

标签:java,变量,子类,成员,接口,面向对象,父类,方法
来源: https://www.cnblogs.com/hhthtt/p/10488028.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有