面向对象与面向过程:

  面向对象(OOP)与面向过程 二者都是一种思想,面向对象是相对于面向过程而言的。

  面向过程,强调的是功能行为。面向对象,将功能封装进对象,强调具备了功能的对象。

  面向对象更加强调运用人类在日常的思维逻辑中采用的思想方法与原则,如抽象、分类、继承、聚合、多态等。

  面向对象的三大特征: 封装 (Encapsulation) 、继承 (Inheritance) 、多态 (Polymorphism)。

  面向对象思想概述:

  

  程序员从执行者转化成了指挥者。

  完成需求时: 先去找具有所需功能的对象来用。 如果该对象不存在,那么创建一个具有所需功能的对象。 这样简化开发并提高复用。

  类(class)和对象(object)是面向对象的核心概念。

  类:是对一类事物描述,是抽象的、概念上的定义。

  对象:是实际存在的该类事物的每个个体,因而也称实例(instance)。

java类及类的成员:

   属 性:对应类中的成员变量。

   行 为:对应类中的成员方法。

  类的格式:

  

  步骤:

  定义类(考虑修饰符、类名)。

  编写类的属性(考虑修饰符、属性类型、属性名、初始化值)。

  编写类的方法(考虑修饰符、返回值类型、方法名、形参等)。

  

属性:

   成员变量与局部变量:

  成员变量与局部变量的区别:

 方法:

构造器:

  构造器的重载:

对象的创建:

  java类的实例化,即创建类的对象。  

  当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。除了基本数据类型之外的变量类型都是引用类型。

  创建对象的格式:

  内存分析:

  匿名对象:

  生命周期:

博客:https://www.cnblogs.com/MOBIN/p/4853901.html

this关键字:

  this的作用:

  1.当形参与成员变量重名时,如果在方法内部需要使用成员变量,必须添加this来表明该变量时类成员。

  2.在任意方法内,如果使用当前类的成员变量或成员方法可以在其前面添加this,增强程序的阅读性。

  3.this可以作为一个类中,构造器相互调用的特殊格式。

  注意:

  1.使用this()必须放在构造器的首行!

  2.使用this调用本类中其他的构造器,保证至少有一个构造器是不用this的。

封装: 

  Java中通过将数据声明为私有的(private),再提供公共的(public)方法:getXxx()和setXxx()实现对该属性的操作,以实现下述目的:

  •    隐藏一个类中不需要对外提供的实现细节;
  •   使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作;
  •   便于修改,增强代码的可维护性;

  四种访问权限修饰符:

  Java权限修饰符public、protected、private置于类的成员定义前,用来限定对象对该类成员的访问权限。

  注意:

  对于class的权限修饰只可以用public和default(缺省)。

  public类可以在任意地方被访问。

  default类只可以被同一个包内部的类访问。

 Java三大特征:https://www.cnblogs.com/ibalintha/p/3897821.html

 

Java的高级特性:

  1、关键字static

  当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用。我们有时候希望无论是否产生了对象或无论产生了多少对象的情况下,某些特定的数据在内存空间里只有一份,例如所有的中国人都有个国家名称,每一个中国人都共享这个国家名称,不必在每一个中国人的实例对象中都单独分配一个用于代表国家名称的变量。

  类属性、类方法的设计

  类属性作为该类各个对象之间共享的变量。在设计类时,分析哪些类属性不因对象的不同而改变,将这些属性设置为类属性。

  相应的方法设置为类方法。 如果方法与调用者无关,则这样的方法通常被声明为类方法,由于不需要创建对象就可以调用类方法,从而简化了方法的调用

  2、单例设计模式:

  设计模式:是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式就像是经典的棋谱,不同的棋局,我们用不同的棋谱,免去我们自己再思考和摸索。

  所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构造方法的访问权限设置为private,这样,就不能用new操作符在类的外部产生类的对象了,但在类内部仍可以产生该类的对象。因为在类的外部开始还无法得到类的对象,只能调用该类的某个静态方法以返回类内部创建的对象,静态方法只能访问类中的静态成员变量,所以,指向类内部产生的该类对象的变量也必须定义成静态的。

  饿汉式:

  懒汉式:

  3、初始代码块:

  一个类中初始化块若有修饰符,则只能被static修饰,称为静态代码块(static block ),当类被载入时,类属性的声明和静态代码块先后顺序被执行,且只被执行一次。

  

  

  举例:

  

  

  4、final关键字

  5、抽象类

  随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类叫做抽象类。

 

  6、接口

  有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java不支持多重继承。有了接口,就可以得到多重继承的效果。

  接口(interface)是抽象方法和常量值的定义的集合。

  从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。

   实现接口类: class SubClass implements InterfaceA{ }

  一个类可以实现多个接口,接口也可以继承其它接口。

  接口总结:

  通过接口可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系。

  通过接口可以指明多个类需要实现的方法,一般用于定义对象的扩张功能。

  接口主要用来定义规范。解除耦合关系。

  接口与抽象类的区别:

  在开发中,一个类不要去继承一个已经实现好的类,要么继承抽象类,要么实现接口。

  7、内部类

  内部类特征:

  匿名内部类:

  匿名内部类不能定义任何静态成员、方法和类,只能创建匿名内部类的一个实例。

  一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。

   面向对象汇总:

Java继承之面向对象的更多相关文章

  1. Java—继承、封装、抽象、多态

    类.对象和包 1) 面向对象编程(Object Oriented Programming ,简称 OOP):20世纪70年代以后开始流行. 2) 结构化编程与面向对象编程的区别: A. 在结构化编程中 ...

  2. 黑马程序员——【Java基础】——面向对象(一)概述、类与对象、继承、抽象类、接口、多态、内部类

    ---------- android培训.java培训.期待与您交流! ---------- 一.面向对象概述 1.面向对象:是一个很抽象的概念,它相对面向过程而言,是一种程序设计的思想. 2.面向对 ...

  3. 15、Java中级进阶 面向对象 继承

    1.何为面向对象 其本质是以建立模型体现出来的抽象思维过程和面向对象的方法(百度百科)是一种编程思维,也是一种思考问题的方式 如何建立面向对象的思维呢?1.先整体,再局部2.先抽象,再具体3.能做什么 ...

  4. 111 01 Android 零基础入门 02 Java面向对象 04 Java继承(上)02 继承的实现 01 继承的实现

    111 01 Android 零基础入门 02 Java面向对象 04 Java继承(上)02 继承的实现 01 继承的实现 本文知识点: 继承的实现 说明:因为时间紧张,本人写博客过程中只是对知识点 ...

  5. java学习之面向对象(4)

    之前介绍了java面向对象三大特性之一封装,现在来说说三大特性之一继承和抽象类.这些只是我个人的认识,不足之处还请见谅. 1. 继承是面向对象的三大特征之一,那么何为继承呢? 继承是指一个对象直接使用 ...

  6. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  7. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  8. 黑马程序员——【Java基础】——面向对象(二)异常机制、包(Package)

    ---------- android培训.java培训.期待与您交流! ---------- 一.异常机制 (一)异常概述 1.异常:就是程序在运行时出现不正常情况. 2.异常类:程序在运行时,出现的 ...

  9. Java中的面向对象

    Java中的面向对象 在软件开发的学习中, 我最先接触的开发语言就是java,但都是简单的函数和循环数组的应用.说道面向对象,第一次看到这个词的时候还是在C#的学习过程中,我记得当时PPT上霸气的解释 ...

随机推荐

  1. 入门大数据---Spark_Transformation和Action算子

    一.Transformation spark 常用的 Transformation 算子如下表: Transformation 算子 Meaning(含义) map(func) 对原 RDD 中每个元 ...

  2. js语法基础入门(5.1)

    5.流程控制 5.1.选择结构 程序流程图 图例: 椭圆: 开始/结束 矩形: 操作 菱形: 判断 连接线: 走向 可以根据程序流程图,理清楚程序执行的流程 5.2.1.if语句 //if语句语法结构 ...

  3. socketserver模块使用与源码分析

    socketserver模块使用与源码分析 前言 在前面的学习中我们其实已经可以通过socket模块来建立我们的服务端,并且还介绍了关于TCP协议的粘包问题.但是还有一个非常大的问题就是我们所编写的S ...

  4. [USACO11JAN]Roads and Planes G【缩点+Dij+拓补排序】

    题目 Farmer John正在一个新的销售区域对他的牛奶销售方案进行调查.他想把牛奶送到T个城镇 (1 <= T <= 25,000),编号为1T.这些城镇之间通过R条道路 (1 < ...

  5. 同一WpfApplication下简单的页面转换

    别人写的很不错的Dome...分享学习下 源文件地址 : http://pan.baidu.com/share/link?shareid=1698564707&uk=3912660076

  6. scala数据结构(一)

    一.概述 1,特点 )Scala同时支持不可变集合和可变集合 )两个主要的包: 不可变集合:scala.collection.immutable 可变集合: scala.collection.muta ...

  7. 浅谈JVM和垃圾回收

    写在前面 简单的介绍一下JVM(Java Virtual Machine)吧,它也叫Java虚拟机.虽然它叫虚拟机,但是实际上不是我们所理解的虚拟机,它更像操作系统中的一个进程.JVM屏蔽了各个操作系 ...

  8. Django快速开发实践:Drf框架和xadmin配置指北

    步骤 既然是快速开发,那废话不多说,直接说步骤: 安装Djagno 安装Django Rest Framework 定义models 定义Rest framework的serializers 定义Re ...

  9. 自描述C++部分面试题集

    1.谈谈啥叫对象成员以及对象成员的构造函数调用调用方式. 在类中定义的数据成员一般都是基本的数据类型.但是类中的成员也可以是对象,叫做对象成员. C++中对对象的初始化时非常重要的操作,当创建一个对象 ...

  10. web前端工程化/构建自动化

    前端工程化 前端工程化的概念在近些年来逐渐成为主流构建大型web应用不可或缺的一部分,在此我通过以下这三方面总结一下自己的理解. 为什么需要前端工程化. 前端工程化的演化. 怎么实现前端工程化. 为什 ...