面向对象概念-类与对象的关系

封装:指隐藏对象的属性和实现细节,仅对外提供公共访问方式,private-构造方法/构造器-this关键字-static关键字(javadoc制作工具类) -代码块

继承:方法重写-super-子类实例化过程-final-抽象类-接口

多态:

1.1 面向对象概念Object-Oriented

1.1.1 理解面向对象

面向对象是相对面向过程而言
面向对象和面向过程都是一种思想
面向对象是基于面向过程的

1.1.2 面向对象的特点

可以将复杂的事情简单化
将程序员从执行者转换成了指挥者
完成需求时:
先要去找具有所需的功能的对象来用。如果该对象不存在,那么创建一个具有所需功能的对象,这样简化开发并提高复用

  1. 开发的过程:其实就是不断的创建对象,使用对象,指挥对象做事情
  2. 设计的过程:其实就是在管理和维护对象之间的关系。

面向对象的特征:

  • 封装(encapsulation)
  • 继承(inheritance)
  • 多态(polymorphism)

1.2类与对象的关系

1.2.1类与对象的定义

使用计算机语言就是不断的在描述现实生活中的事物。java中描述事物通过类的形式体现,类是具体事物的抽象,概念上的定义。对象(实例)即是该类事物实实在在的个体
不同Dog对象抽象出Dog类。

1.2.2类的定义

生活中描述事物无非就是描述事物的属性和行为
如:狗有颜色,年龄等属性,有跑,叫等行为
Java中用类class来描述事物也是如此

  • 现实世界中事物的属性:对应类中的成员变量
  • 现实世界中事物的行为:对应类中的成员方法

定义一个类,其实就是在定义类中的成员(也就是成员变量和成员方法)
public class Dog{
public String color; //成员变量
public void eat(){...} //成员方法
}

类成员的写法:

  • 成员变量:

    和之前定义变量的规则一样
    写在类中,成员方法的外边

  • 成员方法:

    和之前定义方法的规则一样

1.2.3成员变量和局部变量的区别

成员变量(目前都是实例变量):
  成员变量定义在类中,作用范围是整个类
  实例变量随着对象的创建而存在,随着对象消失;存在于对象所在的堆内存中
  成员变量有默认初始化值(0/0.0/false/null)

局部变量:
  局部变量定义在局部范围内:方法内,形参上,代码块内
  局部变量存在于栈内存中
  方法或者语句执行完,变量空间自动释放
  局部变量没有默认初始化值,除了形参,使用之前必须赋值

1.2.4创建对象,使用对象

类定义:

//类定义class Car{int year;String color;public void run(){System.out.println(“车在跑...”);}public void turnTo(String direction){System.out.println(“转向:”+direction);}
}

类使用:

public class CarDemo{ //想要运行main方法,专门放入一个测试类中public static void main(String[] args){ Car c = new Car();//建立对象c.color = "black";c.run();//调用对象的方法
    }
}

1.2.5对象的内存结构

一个对象的内存结构
重点:
1.方法区的概念
2.成员变量的初始化

两个变量指向一个对象的内存结构
重点:多个变量指向同一个对象(多对一关系)

同类两个对象的内存结构
重点:方法的共用

1.2.6匿名对象

匿名对象是对象的简化形式
匿名对象两种使用情况:
  1.对象方法仅进行一次调用时,多次调用不适合
  2.匿名对象可以作为实际参数进行传递(可作参)
  3.作为返回值返回
使用匿名对象的好处:
  1.简化写法,不必定义变量接住对象引用
  2.对象用完之后就变成垃圾内存,可以被垃圾回收器回收

转载于:https://www.cnblogs.com/wqbin/p/11146247.html

java面向对象1-面向对象概念相关推荐

  1. Java基础之面向对象的概念 继承---组合----枚举类

    Java基础之面向对象的概念 继承---组合----枚举类 本章作为面向对象概念的最后一篇,但是作为一名java程序员在面向对象的这条路上还很长. 一.继承与组合简介 继承是实现类重用的重要手段,但是 ...

  2. 【译文】 C#面向对象的基本概念 (Basic C# OOP Concept) 第一部分(类,对象,变量,方法,访问修饰符)...

    译文出处:http://www.codeproject.com/Articles/838365/Basic-Csharp-OOP-Concept 相关文档:http://files.cnblogs.c ...

  3. 【编程语言】Java基础进阶——面向对象部分

    断断续续终于把男神的Java都看完了,只是囫囵吞枣走马观花罢了,还有好多地方不是很理解,很多细节都没能理清.之后再边动手边复习一遍,然后开始尝试做点东西吧! 0. 一些小tips ·为避免出现错误提示 ...

  4. Java基础:面向对象

    1. 面向对象思想 面向对象是一种符合人类思维习惯的编程思想.现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系.在程序中使用对象来映射现实中的事物,使用对象的关系来描述事物之间的联系 ...

  5. Java基础-初识面向对象编程(Object-Oriented-Programming)

    Java基础-初识面向对象编程(Object-Oriented-Programming) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java是一门面向对象的程序设计语言.那么什 ...

  6. java基础(一)-面向对象思想

    前言 java是一门面向对象的语言,在学习java前,先要理解面向对象这个概念,区别于c这类的面向过程语言,面向对象有着什么一样的特点呢?先上一张思维导图吧: 对象 什么是对象 问题空间中的元素及其在 ...

  7. Java笔记:面向对象3大特性

    三大特性 一.封装 1.基本演示: 2.探究: 3.总结 二.继承 1.实例演示 2.查看继承关系 3.Object 4.surper 5.方法的重写 代码一组: 组二: 组三 重写方法的代码 思考与 ...

  8. Java基础篇——面向对象编程

    ​ ​ 活动地址:CSDN21天学习挑战赛 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩:迟一天就多一天平庸的困扰.各位小伙伴,如果您: 想系统/深入学习某技术知识点- 一个人摸索学习很难坚持 ...

  9. Java语言基础-面向对象编程三步走之打开冰箱门

    开头: 何谓"面向对象" 面向对象是一种编程思想. 思想是一个很虚无缥缈的东西,但是它可以从一个人的具体行动中体现出来,如果说你坚持每天跑步,每天读书,做一些有益于身心健康的事情, ...

  10. Java基础篇--面向对象(Object Oriented)

    Java基础篇--面向对象(Object Oriented) 1. 面向对象概念 1.1 什么事面向对象 1.2 理解面向对象 1.3 面向对象的特点 1.4 面向对象开发设计特征 2. 类与对象 2 ...

最新文章

  1. 影响系统性能的几个原因
  2. script和href
  3. linux 内存溢出排查_记一次JAVA 线上故障排查完整套路
  4. 记录一次docker项目连接不上docker mysql的问题
  5. Java Socket编程中使用ObjectOutputStream 和 ObjectInputStream 出现问题
  6. Linux: mv, rename单次及批次修改档案名称及后缀(批量修改文件名)
  7. Zookeeper的一次启动失败问题解决
  8. java读取视频时长
  9. 边工作边刷题:70天一遍leetcode: day 2
  10. 进阶之路:Java 日志框架全画传(下)
  11. VBA编程基础和编程环境(二)
  12. 自制狂拍灰太狼小游戏(HTML+CSS+JavaScript)
  13. 混沌数学之Lorenz(洛伦茨)吸引子
  14. Crate安装和配置
  15. 程序集定义(Assembly Definition File)
  16. 【Linux】-关于Linux的指令(上)
  17. 英文书《用unreal来学习c++》_股市高人经常用“开盘八法”来预判股票一天的走势,可以学习学习...
  18. 记第一次参加五一数学建模竞赛
  19. Java中String字符串:空字符串、存放空的字符串、null的区别
  20. 《诗经·击鼓》:男人赌性命,女人赌身家

热门文章

  1. Android 隐藏LinearLayout
  2. STM32 TIM PWM中阶操作:互补PWM输出
  3. 浏览器缓存之 LocalStorage
  4. 如何修改页面呈现哀悼模式?
  5. 工程伦理-工程中的风险、安全与责任
  6. 计算机网络分层的优点有哪些,计算机网络分层设计优点有哪些
  7. 自定义地图数据瓦片化请求的一种实现方案
  8. JAVA毕业设计高校宿舍管理系统演示视频2021计算机源码+lw文档+系统+调试部署+数据库
  9. 【帝国CMS】网站地图sitemap制作与自动更新
  10. Canvas阴影绘制