java学习日记week3面向对象2:封装,继承,多态

     2022-03-16     702

关键词:

一 、包(package)

  1.package:

    为什么需要package?

    为了解决类之间的重名问题。

    为了便于管理类:合适的类位于合适的包!

    package怎么用?

    通常是类的第一句非注释性语句。

    包名:域名倒着写即可,再加上模块名,并与内部管理类。

    其实内部实现就是靠目录结构来做到的。

    com.sun.test

    com.oracle.test(com.oracle.test.test1)是两个不同的包;

  2.JDK中的主要包:

    java.lang-包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。

    java.awt-包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。

    java.net-包含执行与网络相关的操作的类。

    java.io-包含能提供多种输入/输出功能的类。

    java.util-包含一些实用工具类,如定义系统特性、使用与日期日历相关的函数。

  3.import

    import可以导入其他包下面的类,从而可以在本类中直接通过类名来调用。  

    如果不用import,用到其他包的类时,只能这么写:java.util.Date,代码量太大,不利于编写和维护。

    import使用:

      import  java.util.Date;

      import  java.util.*;   //导入该包下所有的类。会降低编译速度,但不会降低运行速度。

      java会默认导入java.lang包下所有的类,因此这些类我们可以直接使用。

      如果导入两个同名的类,只能用包名+类名来显示调用相关类:

      java.util.Date date  = new  java.util.Date();

    static  import静态导入(JDK 1.5后增加,):

      静态导入的作用:用于导入指定类的静态属性

      import static java.lang.Math.*;//导入Math类的所有静态属性

      import static java.lang.Math.PI;//导入Math类的PI属性

      然后,我们可以在程序中直接使用:System.out.println(PI);

二、继承(inheritance,extend)

  通过继承可以提高代码的复用性,简化代码。

  1.关键字:extends

    一个类继承另一个类称继承者为子类,被继承者为父类(超类);

    子类包含了其父类的所有属性 、(非私有(private))方法;

    继承通过extends来实现:(在类声明的时候使用,java中是单继承只能继承一个父类,在extends缺省时默认继承Object类,Object类是所有类的超类)

    class A extends class B(){};

  2.方法的重写

    区别于方法重载,方法重写是在子类继承父类时才可以实现的;

    对父类方法重写需要其子类方法的 返回值类型 方法名 参数列表  均相同;

    重写的方法访问权限不能比其继承的方法更严格;

  3.super关键字

    super是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性。

    普通方法:没有顺序限制。可以随便调用。

    构造方法中 任何类的构造函数中,若是构造函数的第一行代码没有显式的调用super(...);那么Java默认都会调用super();作为父类的初始化函数。 所以你这里的super();加不加都无所谓。

  4.Object类

    Object类是所有Java类的根基类、

    如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类

    Object类中的一些方法:

      toString()方法:

      Object类中定义有public String toString()方法,其返回值是 String 类型,描述当前对象的有关信息。

      在进行String与其它类型数据的连接操作时(如:System.out.println(“info”+person)),将自动调用该对象类的 toString()方法

      可以根据需要在用户自定义类型中重写toString()方法

       equals(java.lang.Object)方法:

      Object 的 equals 方法 定义为:x.equals ( y ) 当 x 和 y是同一个对象的应用时返回 true 否则返回 false

      J2SDK提供的一些类,如String,Date等,重写了Object的equals方法,调用这些类的equals方法, x.equals (y) ,当x和y所引用的对象是同一类对象且属性内容相等时(并不一定是相同对象),返回 true 否则返回 false。

      可以根据需要在用户自定义类型中重写equals方法。

  5.权限修饰符(public private protected   )

 

同一个类

同一个包中

子类

所有类

private

*

 

 

 

default(缺省)

*

*

 

 

protected

*

*

*

 

public

*

*

*

*

    表中陈列了不同修饰符所修饰的 变量/方法/类 可以被访问的权限范围;

三、多态(polymorphism)    

  如果编译时类型和运行时类型不一致,就会造成多态。

  多态性是OOP中的一个重要特性,主要是用来实现动态联编的,换句话说,就是程序的最终状态只有在执行过程中才被决定而非在编译期间就决定了。这对于大型系统来说能提高系统的灵活性和扩展性。

  多态是方法的多态,属性没有多态性。

  多态的存在要有3个必要条件:要有继承,要有方法重写,父类引用指向子类对象

 

学习使用思维导图对java面向对象编程的知识点(封装继承)进行总结。

 一.封装(带返回值)    -1.概念  将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问    -2.语法  privateintnum; &nb... 查看详情

java学习--类与对象

一。面向对象编程的三大特性  1.封装性    面向对象编程的核心思想之一就是将数据和对数据的操作封装在一起。通过抽象,即从具体的实例中抽取出共同的性质形成一般的概念,例如类的概念。  2.继承    继... 查看详情

面向对象的学习

java的编程基础知识已经大体掌握,而接下来的学习便是java核心的知识,面向对象,这也是java跟其他面向过程的程序语言最大的不同。面向对象的知识点共有:面向对象的概念、类与对象、封装、多态、继承、抽象、接口、内部... 查看详情

javascript设计模式学习之一——javascript面向对象与java的区别

一、静态语言与动态语言面向对象之对比  封装:    1)封装数据:java中通过私有变量Private等实现,javascript中通过函数内的局部变量实现    2)封装实现:对象内部的变化对于外部是透明的,对象之间通过暴露的... 查看详情

java继承的那些事!

...JAVA面向对象第二章继承其实在我们面向对象这一阶段的学习中,我们就是围绕Java的三大特性(封装、继承、多态)来讲解的,在上一掌内容中我们讲解了一部分封装的有关知识,今天我们来重点学习继承的学习。2.1继承的基本... 查看详情

php面向对象三大特点学习(充分理解抽象封装继承多态)

PHP面向对象三大特点学习学习目标:充分理解抽象、封装、继承、多态 面象对向的三大特点:封装性、继承性、多态性首先简单理解一下抽象:我们在前面定义一个类的时候,实际上就是把一类事物共有的属性和行为提取出... 查看详情

golang学习路径03面向对象封装继承多态(代码片段)

...ctgo没有构造器,可以使用工厂方法代替通过面向对象学习struct和interface6.1type关键字定义一种新的数据类型functestType() //type代表定义一种新的类型,这里等同于int类型的别名。 //一般用来定义结构体或者接口 typenumberint va 查看详情

java学习面向对象之继承

继承(面向对象特征之一)好处:1:提高了代码的复用性。2:让类与类之间产生了关系,提供了另一个特征多态的前提。 父类的由来:其实是由多个类不断向上抽取共性内容而来的。java中对于继承,java只支持单继承。java... 查看详情

面向对象封装和继承

  今天,我主要学习了访问修饰符、类的封装性和继承性。  访问修饰符主要分为4个:  pubulc:公共的,只要引用了命名空间,就可以随意进行访问。  private:私有的,只有当前类内部才可以访问。  internal:内部的,... 查看详情

举例说明java面向对象的封装继承多态

继承就是在面向对象中体现的是is-a的关系,是一个,封装就是写一个类了,多态则体现的是一个行为的多样性参考技术A面向对象编程的三大特性:封装、继承、多态,把对象封装成类,有共同部分的类可以抽象出相同部分封装成... 查看详情

5.1-全栈java笔记:面向对象的特征继承|上

...,更多的是先进行语法性质的了解,不要期望,通过本章学习就“搞透面向对象”。本章只是面向对象的起点,后面所有的章节说白了都是面向对象这一章的应用。老鸟建议建议大家,学习本章,莫停留!学完以后,迅速开展后... 查看详情

java学习笔记-多态

 个人对多态的一点理解,不一定完全正确,欢迎大家批评指正。 1.什么是多态  面向对象的三大特性:封装,继承,多态。从某种程度来说,多态是建立在封装和继承的继承之上的。  多态性可以理解为同... 查看详情

python入门-6面向对象编程:07面向对象三大特征(封装继承多态)-继承(代码片段)

...只对外暴露“相关调用方法”。    通过前面学习的“私有属性、私有方法”的方式,实现“封装” 查看详情

对象—封装继承

对象2面向对象的三大特征:1、封装2、继承3、多态封装概念:实现隐藏细节的过程。好处:1、重用2、隐藏实现的细节(可设置访问权限/级别)不限于面向对象,无处不在纯面向对象的访问级别:public级别最低,均可访问protected... 查看详情

面向对象之封装,继承,多态的理解

封装1.什么是封装  封装(encapsulation)又叫隐藏实现(Hidingtheimplementation)。就是只公开代码单元的对外接口,而隐藏其具体实现。  其实生活中处处都是封装,手机,电脑,电视这些都是封装。你只需要知道如何去操作他们,并... 查看详情

java基础学习——面向对象思想

学习Java,就离不开学习面向对象的编程思想。Java语言是纯粹的面向对象的程序设计语言,这主要表现为Java完全支持面向对象的三种基本特征:封装(encapsulation)继承(inheritance)多态(polymorphism)Java语言完全以对象为中心,Java程序的最... 查看详情

2019-05-17java学习日记之面向对象_多态&抽象类&接口(代码片段)

多态 多态的概述:A:多态(polymorphic)事物存在的多种形态B:多态前提a:要有继承关系b:要有方法重写c:要有父类引用指向子类对象多态中的成员访问特点之成员变量:成员变量:编译看左边(父类),运行看左边(父... 查看详情

java学习·初识面向对象深入一

面向对象深入1.面向对象三大特征a)继承inheritance     子类可以从父类继承属性和方法     子类可以提供自己的属性方法b)封装encapsulation     对外隐藏某些属性和方法  ... 查看详情