面向对象与面向过程:

  面向对象(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. 呼~~~~--历时几个星期终于搞好了HTTPS协议---阿里云

    打开网站加入阿里云官网 https://yundun.console.aliyun.com/?p=cas#/overview/cn-hangzhou 登陆查看自己的证书 没有点击购买证书 -- 选中对 ...

  2. pxc搭建mysql集群

    docker -y update yum install -y docker service docker satrt docker images 服务器:curl -sSL https://get. ...

  3. HttPclient 以post方式发送json

    使用HttpClient 以POST的形式发送json字符串 步骤: 1.url .parameters 2.创建httpClient对象 3.创建HttpPost对象 4.为post对象设置参数 5 ...

  4. 谈谈javaSE中的==和equals的联系与区别

    前言 ==和equals是我们面试中经常会碰到的问题.那么它们之间有什么联系和区别呢?今天我们就来聊聊吧! 问题 这里先抛出一些比较典型笔试问题: int x = 10; int y = 10; St ...

  5. (私人收藏)64个精致的页面loadinggif动画

    64个精致的页面loadinggif动画 https://pan.baidu.com/s/18bfktLZ90jQ7l2kSmMv-dgnmm5

  6. linux新用户(组)的那些事

    linux新用户(组)的那些事   创建新用户 groupadd bigdata //添加新用户组bigdata useradd -g bigdata es //-g:为用户组添加新用户 passwd ...

  7. AHP(使用于某项目设备重要度评估测试)

    用层次法和蒙特卡洛模型计算权重系数,然后建立判断矩阵进行随机一致性检验,最后求出重要度指数. string calculateStr = "1,2,3,2,1,|1,2,3,2,1,|1,2 ...

  8. day39 作业

    实现生产消费原理 from multiprocessing import Process,JoinableQueue import time import random def cooker(q): ...

  9. 深入理解JVM(③)线程与Java的线程

    前言 我们都知道,线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源调度(内存地址.文件I/O等),又可以独立调度. 线程的实现 主流的 ...

  10. python数据处理(六)之数据清洗:标准化和脚本化

    1.数据归一化和标准化 a. 归一化:对数据集进行计算,使数据都位于一个特定的范围\ b.标准化: c.删除离群值 2.数据存储 a.保存到SQLite数据库中 b.导出到简单的文件中csv 3.找到 ...