第二十五节:Java语言基础-面向对象基础
面向对象
面向过程的代表主要是C
语言,面向对象是相对面向过程而言,Java
是面向对象的编程语言,面向过程是通过函数体现,面向过程主要是功能行为。
而对于面向对象而言,将功能封装到对象,所以面向对象是基于面向过程的。以前是主要以面向过程为思想,现在是将功能装进对象中,如果要用到功能时,就调用该对象即可。
面向对象是入门思想的进步,适用于人类的思考,将复杂的东西进行了简单化,将我们程序员从执行者变化成指挥者。由以前面向功能(面向过程)转变为面向对象(封装的功能)。
****
面向对象设计思想
设计思想的变化
例如:学生行为
对于结构化程序设计:起床,洗脸,吃饭,下课,放学
对于面向对象设计,类,类中的方法
面向对象的特征
- 封装
- 继承
- 多态
类与对象的关系
类为对事物的描述,具有属性和行为;
对象是该类事物创建的实体,通过对象调用。
一切事物皆对象,在Java
中描述事物通过类的形式体现,类是具体事物的抽象。
类的定义
类具有属性和行为,它是将数据和与数据相关的操作封装在一起的集合体,类定义中的成员即成员变量和成员函数。
成员变量和局部变量
成员变量有默认的初始值,成员变量定义在类中,可以被整个类访问,成员变量随对象的创建而创建,随对象的消失而消失,存储在堆内存中。
局部变量定义在函数内,语句中,局部变量存在于栈内存中,随着方法的运行而运行,出栈而结束,作用的范围内结束,没有默认值。
创建对象
Car c = new Car(); // 创建对象
封装
封装是隐藏对象的属性与功能,仅对外提供公共访问权限,封装可以提高安全性,重用性等。
构造函数
构造函数对对象进行初始化,没有具体的返回值,返回类型,函数名和类名相同。
this关键字
this
为代表本类对象的引用。
static
使用static
修饰的成员变量为静态变量;
用static
修饰的类,为静态类,
用来修饰方法,则为静态方法。
静态变量是归类所有,静态变量直接通过类调用,而不用实例化对象。静态方法也是用类名直接调用的。静态方法只能操作静态变量而不能使用实例变量。
静态随类的加载而加载,优先于对象存在。静态方法中不能用
this
,super
。
结语
- 本文主要讲解 Java语言基础-面向对象基础
- 下面我将继续对
Java
、Android
中的其他知识 深入讲解 ,有兴趣可以继续关注 - 小礼物走一走 or 点赞
第二十五节:Java语言基础-面向对象基础的更多相关文章
- centos lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress 安装phpmyadmin 定时备份mysql两种方法 第二十五节课
centos lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress 安装phpmyadmin 定时备份mysql两种方法 第二十五节 ...
- 风炫安全WEB安全学习第二十五节课 利用XSS键盘记录
风炫安全WEB安全学习第二十五节课 利用XSS键盘记录 XSS键盘记录 同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源.所以xyz.com下的js脚本采用a ...
- 第二十三节:Java语言基础-详细讲解函数与数组
函数 函数在Java中称为方法,在其他语言中可能称为函数,函数,方法就是定义在类中具有特定功能的程序.函数,在Java中可称为方法. 函数的格式: 修饰符 返回值类型 函数名(参数类型 参数1, 参数 ...
- [java学习笔记]java语言核心----面向对象基础
1.面向对象概述 面向对象是java语言的核心.是对应于面向过程而言的. 面向过程:强调的是过程,即动作.在java中动作就是函数.C语言就是面向过程的. 如:把大象装进冰箱需要几步? 答:需要三步: ...
- 【php增删改查实例】第二十五节 - 在main.php中显示头像
在用户成功上传头像以后,用户登录系统,应该能够看到自己的头像,本节演示如何在这个地方: 添加用户头像. 1.用DIV做: border-radius:50% background:url(xxx.jp ...
- [ExtJS5学习笔记]第二十五节 利用window.open()函数实现ExtJS5的登陆页面跳转
本文地址:http://blog.csdn.net/sushengmiyan/article/details/40427543 mvvm方式实现登陆的博客:http://blog.csdn.net/s ...
- php第二十五节课
详情删除 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...
- “全栈2019”Java多线程第二十五章:生产者与消费者线程详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- “全栈2019”Java第二十五章:流程控制语句中循环语句while
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
随机推荐
- HTML5-网页添加视频-菜鸟笔记
一.标签 <video> 在html5中,有这么个标签 <video> 标签. <video> 允许你简单的嵌入一段视频. 二.浏览器的兼容性问题 WebM 容器通 ...
- GDI+_Png图片浏览器
'昨天看见有人问VB6支不支持PNG,刚好我正在研究GDI+,于是做了这个演示程序.'演示下载地址:百度网盘|'下面为设计界面和运行效果截图 ' 千万别喷界面丑. /无奈 .
- “AS3.0高级动画编程”学习:第三章等角投影(上)
什么是等角投影(isometric)? 原作者:菩提树下的杨过出处:http://yjmyzz.cnblogs.com 刚接触这个概念时,我也很茫然,百度+google了N天后,找到了一些文章: [转 ...
- HDU-4725.TheShortestPathinNyaGraph(最短路 + 建图)
本题思路:主要是建图比较麻烦,因为结点可以在层与层之间走动,也可以在边上进行走动,所以主要就是需要找到一个将结点和层统一化处理的方法. 所以我们就可以对于存在边的结点建边,层与层之间如果层数相差一也建 ...
- POJ-1797.HeavyTransportation(最长路中的最小权值)
本题思路:最短路变形,改变松弛方式即可,dist存的是源结点到当前结点的最长路的最小权值. 参考代码: #include <cstdio> #include <cstring> ...
- GitHub下载子目录
背景 整个Github目录太大,国内网速不好,且其他部分也不需要. 方法 把 /tree/master 改成 trunk. svn checkout https://github.com/lodash ...
- [leetcode]22. Generate Parentheses生成括号
Given n pairs of parentheses, write a function to generate all combinations of well-formed parenthes ...
- Spring InitializingBean 接口以及Aware接口实现的原理
关于Spring InitializingBean 接口以及Aware接口实现的其实都在 第11步中: finishBeanFactoryInitialization() 方法中完成了3部分的内容: ...
- MVC的SignalR例子
# SignalR学习 ASP.NET SignalR 是为.NET 开发者提供即时通讯Web 应用的类库.即时通讯Web服务就是服务器将内容自动推送到已经连接的客户端,而不是服务器等待客户端发起一个 ...
- vue案例 - vuex+sessionstorage解决vue项目刷新后页面空白/数据丢失
第一部分 SessionStorage 首先查看sessionStorage的地方在控制台的 Application > Storage > Session Storage这里: 根据se ...