面向过程和面向对象有什么区别?

面向过程的核心是函数,以功能为中心,实现了函数级别的代码重用。

面向对象的核心是封装了属性和方法(行为)的类,以数据为中心,实现了类级别的代码重用。

面向对象因为采用了类,所以具有封装、继承和多态特性,提高了代码重用性、可维护性和扩展性,适合大型项目的开发。

类和对象的区别:

类是对某一类事物的描述,是抽象的概念上的定义(一类事物),类具有自己的属性和行为

对象是实际存在的,具体事物的个体(一类实物详细的某一个)

关系:好比模具和用模具制作出的关系,一个类可以有多个对象

权限符的区别:

public:项目下所有的类文件都可以访问:项目可见性(权限最大)

protect:同一个包中都可用,protect可让子类访问

默认:什么都不写,再同一个包中可用,不写修饰符

private:权限只在自己的类中可见,其他不可用(另一个类中新建对象也不行)

final:final修饰的属性值是不可更改的

static:用它修饰的成员变量或方法可直接使用类名,静态方法中调用不能用super和this,在方法体里不可定义static变量

构造方法:

构造方法名称和类名相同,没有返回值类型,作用是在创建对象时执行一些初始化操作(完成对象成员的赋值)

方法重载的作用:

属性值已经在 构造方法中固定了,在创建对象时完成不同属性的动态赋值(灵活性强)

方法重载特点:方法名相同,构造方法参数列表不同与返回值类型和修饰符无关。

封装:

封装将属性设为private(私有的)

封装通过private,protect,public和默认权限控制符实现权限的控制,降属性设为private,属性只能在类中可见,在提供public权限的setter/getter实现对属性的读取(存取)在setter方法中对用户的输入的控制范围进行判断(控制用户输入范围)

this:当成员变量和局部变量名相同,必须使用this,:public void setName(String name){this.name=name;}

总结:

抽有象类中可以有构造方法吗?

解答:抽象类可以有构造方法,

其构造方法可以被本类的其他构造方法调用,

若此构造方法不是由 private 修饰,也可以被其子类中的构造方法调用。

抽象类和抽象方法的特点?

答:(1) 抽象类和抽象方法都通过 abstract 关键字来修饰。

(2) 抽象类不能实例化。抽象类中可以0到多个抽象方法,甚至全部方法都可以

是抽象方法。

(3) 抽象方法只有方法声明,没有方法实现。

有抽象方法的类必须声明为抽象类。

子类必须重写所有的抽象方法才能实例化,否则子类还是一个抽象类。

属性可以是简单变量,也可以是一个对象

面向对象的三大特征      封装、继承、多态   

   abstract  可以用来修饰类和方法,但不能用来修饰属性和构造方法

java第一章抽象和封装的更多相关文章

  1. “全栈2019”Java第一章:安装JDK11(Mac)

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 文章原文链接 “全栈2019”Java第一章:安装JDK11(Mac) 下一章 “全栈2019”Java ...

  2. Java 第一章 初识Java

    第一章笔记 什么是计算机程序:算机为完成某些功能生产的一系列有序指令集合 Java技术包括: java SE:标准版 java EE:企业版 Java ME:移动版 开发Java程序步骤:1.编写 2 ...

  3. Java第一章

    第一章 计算机程序:计算机为完成某些功能产生的一系列有序指令集合. Java技术包括:JavaSE(标准版)  JavaEE(企业版) ---JavaME(移动版) 开发Java程序步骤:1.编写 2 ...

  4. 20165233 Java第一章学习总结

    20165233 2017-2018-2 <Java程序设计>第一周学习总结 教材学习内容总结 第一章 Java特点:语法简单.面向对象.与平台无关.动态. 字节码不能被任何平台直接识别. ...

  5. Java第一章----Java概述+环境搭建

    写在前面的话: Java基础的东西看过好几遍,但是过一段都就忘记了,所以这次我决定花费一些时间整理一个系列博客供以后方便查阅.此系列根据Java编程思想+Java核心技术两本书整理而来,这两本书也是我 ...

  6. Java OOP——第一章 对象和封装

    1.软件出现的目的: 用计算机的语言描述现实世界 用计算机解决现实世界的问题   ◆面向对象设计和开发程序的好处:    交流更加流畅    提高设计和开发效率 计算机语言的发展向接近人的思维方式演变 ...

  7. Java中的抽象和封装

    一.面向对象和面向过程的区别 面向对象: 核心:封装了属性和方法的类,以数据为中心,实现了类级别的代码重用 面向对象因为采用了类,所以具有继承和多态特性,可以进一步重用代码和简化编程 面向过程: 核心 ...

  8. 对象导论 Thinking in Java 第一章

    1.1 抽象过程 1.人们能够解决问题的复杂性直接取决于抽象的类型和质量. 1.2 每个对象都有一个接口 1.3 每个对象都提供服务 1.4 被隐藏的具体实现 1.程序猿分为:类创建者 和 客户端程序 ...

  9. 学习JAVA第一章的心得

    我抱着万分期待的心情开始了我第一天的JAVA学习课程,其实在第一开始的时候我对计算机行业便有很高地兴趣了.这主要归功于我真的从很小开始就就接触了电脑.进入学校以来,我就很期待老师会怎样教我们,会怎样带 ...

随机推荐

  1. 【dbdiff】数据库比对工具安装

    安装git 忽略 安装visual c++组件(和mysql workbench需要的一样) https://www.microsoft.com/en-us/download/details.aspx ...

  2. VUE开发

    待完善... Node.js    参考文档:http://nodejs.cn/ Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境.  Node.js 使用了一个 ...

  3. Mysql在sql中截取时间类型字段的年月日

    //显示年月日 select date_format(date ,'%Y-%m-%d' ) from talbe_a //根据年月日分组 select date_format(date ,'%Y-%m ...

  4. centos7安装mysql,以及设置root密码

    1.首先进入mysql官网的下载-社区https://dev.mysql.com/downloads/ 2.点击下载后,切换版本5.7(这里的版本对于rpm没有作用),然后在新的页面中选择操作系统 3 ...

  5. LeetCode【101. 对称二叉树】

    对称二叉树,就是左节点的左节点等于右节点的右节点,左节点的右节点等于右节点的左节点. 很自然就想到迭代与递归,可以创建一个新的函数,就是另一个函数不断的判断,返回在主函数. class Solutio ...

  6. Oracle数据库ORA-01109 数据库未打开

    引致 https://blog.csdn.net/colinmok/article/details/39504879?locationNum=11&fps=1  感谢! 在plsql创建了2表 ...

  7. 刘志梅2017710101152.《面向对象程序设计(java)》第十二周学习总结

    实验十二  图形程序设计 实验时间 2018-11-14 1.理论知识 (1) 基本AWT库采用将处理用户界面元素的任务委派给每个目标平台的本地GUI工具箱的方式,由本地GUI工具箱负责用户界面元素的 ...

  8. Problem B: 故障电灯(light)

    考虑对电灯进行差分:若第i个电灯和第i + 1个电灯状态不同,则在第i个位置上放一个球 这样我们就放置了不超过2n个球,且必然是偶数个 于是问题转化为:有m个球,每一步可以把一个球平移奇质数个位置,两 ...

  9. python类特列方法使用

    class Rgc(object): def __new__(cls, *args, **kwargs): print('在类通过__new__方法实例化一个对象') return super(Rgc ...

  10. phpstudy中 MySQL版本升级

    问题由来:   在把数据库导入到本地库时,数据库出现报错    Error : Invalid ON UPDATE clause for 'update_time' column   查了下度娘说  ...