S2_OOP第一章
面向对象设计的过程就是抽象的过程
步骤:
第一步:发现类
第二步:发现类的属性
第三步:发现类的方法
抽象是遵循的原则
属性和方法的设置是为了解决业务问题
关注主要属性和方法
如果没有必要,不增加额外的类、属性、方法
构造方法及其重载
Java可以和C#一样使用带参或者无参的构造方法(Constructor)完成赋值的初始化工作,系统会默认给定无参构造函数
构造方法
构造方法的名称和类名相同,没有返回值类型,构造方法的主要工作就是在创建对象时执行一些初始化操作
方法重载
方法重载就是多个方法的方法名相同,方法参数的个数不同或者参数数值类型不同。
Static修饰符
Static修饰的变量属于这个类所有,由这个类创建的所有对象共同一个static变量。通常被static修饰的成员成为类变量和类方法。不使用static修饰的成员属于的单个对象,通常称为实力属性(实例变量)和实例方法
结论
在加载类的过程中,完成静态变量的内存分配,在执行静态块,两者是在才黄建对象之前执行的
类属性和类方法可以通过类名和对象名访问,实例属性和实例方法只能通过对象名访问
类方法只能访问类属性和其他类方法
在方法里不可以定义static变量,也就是类变量不能是局部变量
封装
概念
封装是面向对象的三大特征之一,隐藏类内部的状态信息,通过该类提供的方法来实现对隐藏信息的访问和操作
封装的具体步骤
修改属性的可见性来限制属性的访问,为每个属性创建一个赋值(setter)方法和取值(getter)方法。
封装的优点
隐藏类实现细节
只让使用者通过程序规定的方法来访问数据
可以限制不合理操作和方便加入存取控制语句
This关键字
This关键字是对一个对象的默认引用,在每个实例方法内部,都有一个this引用变量,指定调用这个方法的对象
作用
使用this调用成员变量,解决成员变量和局部变量的同名冲突
使用this调用成员方法
使用this调用个重载的构造方法。只能在构造方法中使用,必须是构造方法的第一条语句。不能在多个构造函数中使,不然会发生递归现象
S2_OOP第一章的更多相关文章
- 《Django By Example》第一章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:本人目前在杭州某家互联网公司工作, ...
- MyBatis3.2从入门到精通第一章
第一章一.引言mybatis是一个持久层框架,是apache下的顶级项目.mybatis托管到goolecode下,再后来托管到github下.(百度百科有解释)二.概述mybatis让程序将主要精力 ...
- Nova PhoneGap框架 第一章 前言
Nova PhoneGap Framework诞生于2012年11月,从第一个版本的发布到现在,这个框架经历了多个项目的考验.一直以来我们也持续更新这个框架,使其不断完善.到现在,这个框架已比较稳定了 ...
- 第一章 MYSQL的架构和历史
在读第一章的过程中,整理出来了一些重要的概念. 锁粒度 表锁(服务器实现,忽略存储引擎). 行锁(存储引擎实现,服务器没有实现). 事务的ACID概念 原子性(要么全部成功,要么全部回滚). 一致性 ...
- 第一章 Java多线程技能
1.初步了解"进程"."线程"."多线程" 说到多线程,大多都会联系到"进程"和"线程".那么这两者 ...
- 【读书笔记】《编程珠玑》第一章之位向量&位图
此书的叙述模式是借由一个具体问题来引出的一系列算法,数据结构等等方面的技巧性策略.共分三篇,基础,性能,应用.每篇涵盖数章,章内案例都非常切实棘手,解说也生动有趣. 自个呢也是头一次接触编程技巧类的书 ...
- 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介
前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...
- 《Entity Framework 6 Recipes》翻译系列 (1) -----第一章 开始使用实体框架之历史和框架简述
微软的Entity Framework 受到越来越多人的关注和使用,Entity Framework7.0版本也即将发行.虽然已经开源,可遗憾的是,国内没有关于它的书籍,更不用说好书了,可能是因为EF ...
- 《Entity Framework 6 Recipes》翻译系列(2) -----第一章 开始使用实体框架之使用介绍
Visual Studio 我们在Windows平台上开发应用程序使用的工具主要是Visual Studio.这个集成开发环境已经演化了很多年,从一个简单的C++编辑器和编译器到一个高度集成.支持软件 ...
随机推荐
- Vue相关(过渡动画)
Vue 过渡 && 动画 一.CSS过渡 1.transition标签可以用来封装需要过渡的元素,添加entering/leaving 过渡, 条件是: (1)使用条件渲染语句 v-i ...
- TTL转MIPI DSI芯片方案TC358778XBG
型号:TC358778XBG功能:TTL转MIPI DSI通信方式:IIC分辨率:1920*1080电源:3.3/1.8/1.2封装形式:BGA80深圳长期现货 ,提供技术支持,样品申请及规格书请联系 ...
- Redis订阅和发布模式和Redis事务
-------------------Redis订阅和发布模式------------------- 1.概念 Redis 发布订阅(pub/sub)是一种消息通信模式: 发送者(pu ...
- Spring Cloud官方文档中文版-服务发现:Eureka服务端
官方文档地址为:http://cloud.spring.io/spring-cloud-static/Dalston.SR3/#spring-cloud-eureka-server 文中例子我做了一些 ...
- redis info 命令详解
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt119 Redis Info 命令以一种易于理解和阅读的格式,返回关于 Red ...
- C++中模板Template的使用
1. 在c++Template中很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢?class用于定义类,在模板引入c++后,最初定义模板的方法为 ...
- 【全面总结】js获取元素位置大小
[js获取元素位置+元素大小]全面总结 目录 1.关于offset offsetParent(只读) offsetTop(只读) offsetLeft(只读) offsetHeight(只读) off ...
- c# 网页打印全流程
说明:我要实现的就是将数据库中Group表的数据查找出来,替换打印模版中的内容,再将模版文件打印出来 1.准备好要打印的模版group_O_train.html <div class=" ...
- 英语学习app案列分析
很多同学有误解,软件工程课是否就是理论课?或者是几个牛人拼命写代码,其他人打酱油的课?要不然就是学习一个程序语言,搞一个职业培训的课?都不对,软件工程有理论,有实践,更重要的是分析,思辨,总结.在课程 ...
- 第二次项目冲刺(Beta阶段)--第四天
一.站立式会议照片 二.项目燃尽图 三.项目进展 队员 ID 贡献比 王若凡 201421123022 20% 吕志哲 201421123021 16% 欧阳勇 201421123026 16% 卢 ...