面向对象

面向对象(OOP,Object-Oriented Programming):
是一种编程思想,将现实世界的事物抽象成对象,包括其属性和行为,将其中
共性的部分封装,借助类、对象、继承等概念进行软件系统构造,强调的是解
决问题的主体,在面对一个问题时,想到的是谁可以帮我解决。

面向对象的好处

1.更符合人类的思维习惯
2.复杂的问题简单化
3.有执行者变成了指挥者

面向过程和面向对象

面向过程:注重的是解决问题所需要的步骤,通过程序将每一个步骤实现,然后依次调用;
面向对象:注重的是解决问题的主体,即将构成问题的事务分解成一个个对象,通过对象去描述问题解决过程中的某一事物的行为。

面向对象的特征

封装:隐藏事物的属性和实现的细节,对外提供公开的访问方式。能够保证内部的高内聚性和与外部的低耦合性。有效提高代码的可读性和复用性。
继承:如果类A继承类B,那么称类A是类B的子类,类B是类A的父类,子类具有父类的非私有的属性和方法,不需要重复写代码,另外子类也可以重新定义某些属性,重写某些方法。
多态:不同类的对象接收相同的消息(共享相同的外部接口),表现出不同的行为。

创建对象的内存分析

1.将创建的对象所属的类的字节码文件加载到方法区(类加载);
2.在栈内存中声明一个该类型的引用,将来用作存储堆内存内对象所属空间的地址值;
3.在堆内存中开辟空间,为成员变量分配内存;
4.给对象中的成员变量进行默认初始化赋值;
6.将堆内存内对象的地址值赋值给栈内存中的引用。
注意:1.类加载只进行依次;2.创建对象的时候,默认隐含了字节码文件的地址;3.哪个对象调用方法,方法的栈帧中就默认隐含了该对象的地址;4.每次使用new关键字,就在堆内存中开辟了新的空间。

类和对象

类:对现实生活中一类具有共同特征的事物的抽象,实质是一种引用数据类型,只有实例化为对象时,才能被操作。类的构成:成员属性(成员变量)和成员方法。成员属性定义方式和变量一样,只不过位置在类中方法外;成员方法定义时修饰符不同于之前的public static ,现在,没有static对象:类的具体表现。

对象的创建和使用

语法:类名 对象名 = new 类名();
访问属性:对象名.属性名;
设置属性:对象名.属性名 = 属性值;
调用方法:对象名.方法名();
package com.DaYupublic class Demo01 {public static void main(String[] args) {//创建对象Animal animal = new Animal();//属性赋值animal.name = "大毛";animal.age = 2;//调用方法animal.sleep();//打印输出信息System.out.println("name:"+name+" "+"age:"+age);}}
//创建一个动物类
class Animal {//属性String name; int age;//行为public void sleep() {   System.out.println("睡觉");}public void kanJiang() {System.out.println("看家"); }}

Java基础---面向对象(OOP)相关推荐

  1. Java 基础 - 面向对象(不错N多教程集合)

    著作权归https://pdai.tech所有. 链接:Java 基础 - 面向对象 | Java 全栈知识体系 本文主要介绍Java OOP 面向对象基础和相关类图.@pdai Java 基础 - ...

  2. 基于Java基础-面向对象实现植物大战僵尸简易版

    基于Java基础-面向对象实现植物大战僵尸简易版 前言 游戏设计 游戏对象 游戏内容 游戏优化 放置植物的优化 移除植物的优化 游戏可玩性的优化 添加游戏背景音乐 后续优化 源码分享 前言 从零开始学 ...

  3. Java基础-面向对象第二特征之继承(Inheritance)

    Java基础-面向对象第二特征之继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承的概述 在现实生活中,继承一般指的是子女继承父辈的财产.在程序 ...

  4. (20)Java基础 --面向对象(1)

    目录 面向对象 一.概述 二.生活举例 三.类与对象的关系 四.类的构成 五.类的定义 类的属性 类的方法 创建实例(对象) 内存分配图 六.对象的基本使用 七.局部变量与成员变量的区别 八.面向对象 ...

  5. 第一阶段>>>Java基础进阶 OOP/Reflect/注解/IO流/API核心

    目录 >>>java基础01-结构以及类型 >>>java基础02-初识数组 >>>java基础03-面向对象OOP >>>ja ...

  6. Java基础-----面向对象

    文章目录 面向对象 类与对象 匿名对象 创建对象的内存分析 栈(stack) 堆(heap) 方法区 PC寄存器 本地方法栈 内部类 成员内部类 局部内部类 匿名内部类 静态内部类 包装类 拆箱和装箱 ...

  7. Java 基础 - 面向对象(不错)

    算法 剑指 Offer 题解 Leetcode 题解 算法 字节跳动内推 操作系统 计算机操作系统 Linux 网络 计算机网络 HTTP Socket 数据库 数据库系统原理 SQL 语法 SQL ...

  8. 黑马程序员 JAVA基础 -面向对象(四)

    -----------android培训.java培训.java学习型技术博客.期待与您交流!------------ 在此,分享一下自己学习JAVA的学习心得.有不对的地方请帮忙改正,也希望对想学j ...

  9. java基础面向对象_Java基础面向对象

    一.面向过程的思想和面向对象的思想 面向对象和面向过程的思想有着本质上的区别,作为面向对象的思维来说,当你拿到一个问题时,你分析这个问题不再是第一步先做什么,第二步再做什么,这是面向过程的思维,你应该 ...

  10. 黑马程序员——java基础--面向对象(篇一)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 第一章 1.面向对象     2.成员变量      3.匿名对象     4.封装       ...

最新文章

  1. C语言怎么保留n位小数并且四舍五入(附带两种简单方法)
  2. Java异步通信实现
  3. SpringBoot+SweeAlert实现alert提示与前后端数据交互
  4. cesium 3dtiles 加载本地数据_记一次Cesium地形数据生成过程
  5. 垃圾代码还能出圈?手把手教你写垃圾代码,从入门到精通!
  6. vue.js java php_准吗?Java程序员喜欢AngularJS,PHP程序员喜欢Vue.js!
  7. System.Drawing.Color.FromArgb(144,238,255);
  8. staf工作笔记-扩展stax官方实例的补坑说明
  9. Python使用pyechart绘制3d散点图
  10. Bootstrap 后台模板-AdminLTE
  11. Open×××多处理之-为什么不
  12. 最新java学习资料汇总(学习路线+视频教程+网盘下载)
  13. Redis笔记-实战篇(黑马视频教程)
  14. matlab申明数值型的符号常量,实验四 MATLAB符号运算
  15. win10分辨率不能调整_win10常规问题解决方案
  16. 【视频+图文 直播贴】2014.9.9 Apple苹果发布会
  17. [ORACLE] ORA-00054 错误的解决方案
  18. 1849 将字符串拆分为递减的连续值(递归)
  19. MTU TTL RTT
  20. GeneXus学习记录

热门文章

  1. 一些常见的HTTP的请求状态码
  2. MobX基础 ----- 类的静态属性和装饰器
  3. SQL:查询重复出现记录
  4. 161227、js显示对象所有属性和方法的函数
  5. ProgressBar与Handler的整合应用
  6. index.dat文件剖析
  7. 字节约翰斯·霍普金斯上交提出iBOT框架,基于MIM进行自监督训练,在ImageNet-1K上达到86.3%的微调精度!...
  8. 论文推荐|【KSII TIIS 2021】DP-LinkNet:一种用于古籍文档图像二值化的卷积网络(有源码)...
  9. 2021 年软件工程现状:Python 或将成为第一大编程语言,中国开源涨势最猛
  10. Python 入门到精通(—)初识Python