Java面向对象的基本特征二

一、封装

  1. 概念:就是使类中的成员变量都是private,但是又提供public方法访问这些成员变量。这样就实现了隐藏类中的成员变量,从而确保了数据的安全性;

  2. 实例:     

      private String name;

      public String getName() {      用于读取变量数据

       return name;

      }

      public void setName(String name) {   用于设置变量数据

       this.name = name;

      }

  注意:命名这些方法时,使用 get 和 set 加上变量名(变量名首字母要大写);

二、多态

  1. 分类:

      ①  静态多态:实现的方式是方法的重载;

      ②  动态多态:实现方式是重写父类的方法;

  注意:我们说的多态,一般就指的是动态多态。

  2. 引用数据的转型(语法与基本数据转型一样):

      ①  向上转型:从子类向父类转,可自动实现;

      ②  向下转型:从父类向子类转,需强制转换;

  3. instantof 关键字:

      用于判断 instantof 前面的对象是否是 instantof 后面的对象的实例。(是返回 true ,不是返回 false)

  

三、抽象

  1. 关键字:abstract

  2. 抽象类:

      abstract 声明的抽象类,不能被实例化。所以需要要有子类才能体现其作用。

  3. 抽象方法:

      abstract 声明的抽象放法,没有方法主体,只能出现抽象类中,并且在子类中要被实现才可以(抽象子类可以不用实现)。

四、接口

  1.概念:就是一种更为特殊的抽象。在接口中的所有方法都是抽象方法,所有的方法都不提供具体的实现。需要其他的类来实现其中所有定义的方法。

  2.接口与类异同:

    同:

      ① 可以有任意数量的方法;

      ② 保存为以".java "为后缀名的文件,接口名必须与文件名保持一致;

      ③ 编译后的文件是后缀名为“.class”的文件;

      ④ 在包中的接口,其相应的字节码文件必须放置在和包名相匹配的一个目录中;

    异:

      ① 接口不能被实例化;

      ② 接口不包含任何构造器;

      ③ 接口中的所有方法都是抽象的;

      ④ 接口中不能包含实例化的成员变量。唯一可以出现在接口中的成员变量必须是同时声明为static和final(公有静态常量);

      ⑤ 接口不能被一个类继承,只能被一个类实现;

      ⑥ 一个接口能够继承多个接口;

  3. 接口的声明:

    语法:     

      public interface 接口名 {
        // 任意数量的final,static成员变量
        // 任意数量的抽象方法声明
      }

    性质:

      ① 接口默认就是抽象的。所以在声明时,不需要使用关键字 abstract;

      ② 接口中的每一个方法都是抽象的。所以在声明时,也不需要使用关键字 abstract;

      ③ 接口中的方法一般都是使用 public ,所以 public 也可以省略;

  4. 接口的实现:

    关键字:implements;

    语法:

      public  class  类名  [extends  父类名]  implements   接口名 {}

      注意:可以一次实现多个接口,有多个接口名时由逗号隔开,实现接口的类(抽象类除外)必须实现接口中的所有方法;

时间: 2024-10-01 01:26:56

Java面向对象的基本特征二的相关文章

Java面向对象的三大特征

Java面向对象的三大特征: 封装.继承.多态 封装和继承几乎都是为多态而准备的 一.      封装 首先,属性能够描述事物的特征,方法能够描述事物的动作.封装就是把同一类事物的共性(包括属性和方法)归到同一类中,方便使用. 封装:封装也称信息隐藏,是指利用抽象数据类型把数据和基于数据的操作封装起来,使其成为一个不可分割的整体,数据隐藏在抽象数据内部,尽可能的隐藏数据细节,只保留一些接口使其与外界发生联系.也就是说用户无需知道内部的数据和方法的具体实现细节,只需根据留在外部的接口进行操作就行.

Java面向对象编程三大特征 - 封装

Java面向对象编程三大特征 - 封装 本文关键字:Java.面向对象.三大特征.封装封装是面向对象编程中的三大特征之一,在对封装性进行解释时我们有必要先了解一些面向对象的思想,以及相关的概念.当我们想要去描述一系列的关系时我们要用到的最基本结构就是类,其中存在着成员变量和方法,用于记录属性和表达行为,相关知识请进传送门:Java中的基本操作单元 - 类和对象. 一.名词解读 为了解释封装的概念和作用,需要先来了解一下几个相关的概念,这有助于我们接下来的理解. 1. 权限修饰符 当我们在一个类中

Java面向对象编程三大特征 - 多态

Java面向对象编程三大特征 - 多态 本文关键字:Java.面向对象.三大特征.多态多态是面向对象编程的三大特征之一,是面向对象思想的终极体现之一.在理解多态之前需要先掌握继承.重写.父类引用指向子类对象的相关概念,对继承还没有完全明白的同学可进传送门:Java面向对象编程三大特征 - 继承. 一.抽象类 在继承中,我们已经了解了子父类的关系以及如何对子父类进行设计,如果已经存在多个实体类,再去定义父类其实是不断的抽取公共重合部分的过程,如果有需要将会产生多重继承关系.在抽取整理的过程中,除了

Java面向对象的三大特征和五大原则

Java面向对象的三大特征 封装 封装(Encapsulation)是指属性私有化,根据需要提供setter和getter方法来访问属性.即隐藏具体属性和实现细节,仅对外开放接口,控制程序中属性的访问级别. 封装目的:增强数据安全性,不能让其他用户随意访问和修改数据,和简化编程,使用者不必在意具体实现细节,而只是通过外部接口即可访问类的成员. 继承 继承(Extend)是指将多个相同的属性和方法提取出来,新建一个父类Java中一个类只能继承一个父类,且只能继承访问权限非private的属性和方法

Java 面向对象的三大特征

面向对象主要由三大特性: 封装 继承 多态 一.封装 1.封装的概念 封装性是面向对象编程的核心思想 指的就是将描述某种实体的数据和基于这些数的操作集合到一起,形成一个封装体 封装的思想保证了类内部数据结构的完整性,使用户无法轻易直接操作类的内部数据,这样降低了对内部数据的影响,提高了程序的安全性和可维护性. 2.封装的好处 只能通过规定方法访问数据 隐藏类数实现细节 方便修改实现 方便加入控制语句 3.封装的使用 1).修改属性的可见性   ——> 设为private 2).创建共有的 get

JavaSE入门学习21:Java面向对象之接口(interface)(二)

一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.java源文件代码: public class Test{ public static void main(String[] args){ //实现接口Singer Singer s1 = new Student("Amy"); s1.sing(); s1.sleep(); s1.study

java 面向对象编程 --第十二章 JDK常用类

1.  系统类 java.lang包   System类 sys.out;sys.exit;sys.gc; sys.currentTimeMillis();----得到从1970-01-01到当前时间的毫秒数,long型 sys.getProperties();&sys.getProperty();user.dir确定&得到当前工程的工作目录,String型 2.  日期类 java.util包     Date类 @Deprecated——> 方法前加上该注解,表示该方法已过时,有

java面向对象之四大特征之继承

Java作为一门高级编程语言,继承.多态.封装.抽象是其四大特征.在这篇文章中我们先来看看继承. 首先,让我们来看看继承的定义:继承就是在现有类上午基础上建一个新的类,新的类被称作现有类的子类,原来的类叫做父类:子类在继承父类的属性和方法的基础上,扩展自己的方法和属性.所以子类可以重用父类的方法和属性.在下面我们将会讲解方法的重写.在Java中,只允许单继承存在,即一个类只能有一个父类,不能有两个或者多个父类. 方法的重写:方法重写发生在子类和父类之间,子类的方法名和父类相同,参数列表相同,返回

java面向对象的基本特征

1.调用栈:简单说就是一个用于维护程序中方法调用,越先执行的方法越靠近调用栈的底部,当一个方法被执行完后就会从调用栈的顶部移除. 如果一个java程序是多线程的应用程序,那么它可能拥有多个调用栈. 2.方法调用后可能的三种情况: (1) 方法返回一个值,基本数据类型或引用类型. (2) 没有返回值. (3) 抛出一个异常给函数的调用者,例如,NullPointerException(空指针异常).ArrayIndexOutOfBoundsException(数组下标越界异常). 注意:Java中