java公社博客_Java面向对象开发学习笔记(一)
Java面向对象开发
共105课时
课时1 面向对象简介
面向对象是一种程序设计方法,但是并不是所有开发者都认同面向对象,因为很多开发者认为面向对象过于复杂,所以更多人愿意使用函数式编程。
面向对象的前身是面向过程,如果要想笼统地解释这两种开发模型的区别,最好的例子:面向过程是解决问题,而面向对象是模块化设计。对于现在的程序开发,更多情况下就像是汽车组装一样,不同的工厂生产不同的配件。将所有的零件组装在一起,就可以形成一辆汽车,并且当某一个零件坏掉的时候,还可以进行配装。
在面向对象里面实际上还有许多的特点,归结起来有如下三类:
封装性:内部操作对外部而言不可见;
继承性:在上一辈基础上继续发展;
多态性:这是一个最为重要的环节,利用多态性才可以得到良好的设计。
那么在进行面向对象开发的时候也有三个阶段:OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程)。所有的程序开发原则都离不开实际生活,如果从程序开发角度讲,面向对象最大的特征:可以进行生活的抽象。
课时2 类与对象(认识类与对象)
类与对象是整个面向对象设计的核心所在,也是所有概念的基础。类本身属于引用数据类型,所以类的使用上会牵扯到内存的分配问题。
认识类与对象
人们互相可以听懂对方说话,是因为我们具备共同的特征:我们都是中国人,母语都是汉语,而且身体正常。那么具备这些共同特征的人有很多,就自然是一个群体,而群体的特征就是整个类的定义概念。所谓的类描述的就是共性特征。
任何时候只是依靠共性的特征是无法进行精准描述的,那么就需要一些个性化的特点,才可以描述一个个独立的事物。这样就可以推断出:所谓的类指的就是一个共性的概念,而对象指的是一个具体的可以使用的事物。
那么很明显,在实际的开发过程中,一定要首先产生类,然后才可以产生对象,对象的所有操作行为都一定在类中进行了完整定义。类中没有定义的功能,对象一定无法使用。
类中的组成:方法(操作的行为)、属性(变量,描述每一个对象的具体特点)。
课时3 类与对象(类与对象的定义和使用)
如果在程序之中要进行类的定义,可以使用class关键字完成,定义的语法如下:
class name{
//所有程序都要求以“{}”作为分界符
property1 ;
property2 ;
function(){}
}
此时的方法不再由主类直接调用,而使通过对象进行调用。
范例:定义类
class Person{
//定义一个类,类名称每个单词首字母要求大写
String name; //表示人的姓名
int age; //表示人的年龄
public void info(){
System.out.println("name = " + name + "、age = " + age) ;
}
}
在这个类中,只是定义了两个属性和一个方法,特别需要注意的是,类中可以定义的属性和方法数量是没有限制的。而且在编写的过程中,每一个方法中的代码尽量不要特别长。
类定义完成之后是不能直接使用的,如果想要使用类那么必须产生对象,而对象的定义分为以下两种语法形式:
声明并实例化对象:类名称 对象名称 = new 类名称();
分步进行对象实例化:
声明对象:类名称 对象名称 = null ;
实例化对象:对象名称 = new 类名称() ;
引用数据类型的最大特征在于对内存的分配操作,只要出现关键字new,就只有一个解释:开辟新内存(内存是不可能无限开辟的,所以这个时候所谓的性能调优调整的就是内存问题)。
范例:声明并实例化对象
public class TestDemo{
public static void main(String args[]){
//类名称 对象名称 = new 类名称 ;
Person per = new person() ; //此时就表示实例化了一个per对象
per.name = "张三" ; //设置对象中的属性
per.age = 18 ; //设置对象中的属性
per.info() ; //调用类中的方法
}
}
所有对象只有实例化之后才可以真正使用,而对象的使用都是围绕着类进行的,此时有两种形式:
调用类中的属性:对象.属性 = 内容;
调用类中的方法:对象.方法();
以上就实现了一个最基本的类的定义以及对象的使用操作形式。
java公社博客_Java面向对象开发学习笔记(一)相关推荐
- java公社博客_Java面向对象开发学习笔记(二)
课时4 类与对象(对象内存分析) 如果要想进行对象的产生分析,首先就必须清楚引用类型.引用类型指的是内存空间的操作.而对于现在的内存,我们主要使用两块内存空间: 堆内存空间:保存真正的数据,堆内存保存 ...
- java公社博客_Java
1 instanceof 1.1 介绍 instanceof是Java.php的一个二元操作符(运算符),和==,>, 1.2 例子 if(ex instanceof CustomExcepti ...
- java公社博客_Java的运算符
算数运算符 + - * / %(取余.取模) ++(自增1) --(自减1) ++ 放在操作数之后,会先取出操作数的值,在进行自增运算 放在操作数之前,会先执行自增运算,然后 ...
- java设计博客_JAVA课程设计——团队博客
JAVA课程设计--团队博客 1. 团队名称.团队成员介绍(需要有照片) 团队名称:"小羊吃蓝莓"小游戏 团队成员介绍: 成员 班级 学号 廖怡洁 网络1513 201521123 ...
- java后验条件_JAVA并发实战学习笔记——3,4章~
JAVA并发实战学习笔记 第三章 对象的共享 失效数据: java程序实际运行中会出现①程序执行顺序对打乱:②数据对其它线程不可见--两种情况 上述两种情况导致在缺乏同步的程序中出现失效数据这一现象, ...
- java中线程总结_java中多线程学习笔记总结
线程的简单学习笔记: 1.进程与线程的概念 进程:从用户角度看进程是应用程序的一个执行过程. 从操作系统核心角度看进程代表的是操作系统分配的内存和CPU时间片等资源的基本单位,是为正在运行的程序提供的 ...
- Tiled有java版本吗_【Cocos2d-X开发学习笔记】开发工具之Tiled地图编辑器的使用
Cocos2D-X支持Tiled地图编辑器生成的地图数据文件.Tiled地图编辑器是一个以广泛使用为目标的地图编辑html 器,它使用简单而且能够轻松地在不一样的引擎中使用.目前最新版本使用Qt框架进 ...
- 大牛的博客,跟大牛学习
今天看到一篇文章,收藏了很多大牛的博客,在这里分享一下(转载于:http://blog.csdn.net/wujxiaoz/article/details/8237096) Android中文Wiki ...
- java毕业论文_【毕业论文】基于java的博客网站设计与开发毕业论文(word文档)
<[毕业论文]基于java的博客网站设计与开发毕业论文.doc>由会员分享,可免费在线阅读全文,更多与<[毕业论文]基于java的博客网站设计与开发毕业论文(word文档)>相 ...
最新文章
- 2015数据中心宕机20%是由DDoS攻击引起
- 华为nova5ipro的优缺点_华为nova5pro和nova5i的区别
- c语言格式字符If,C语言所有语句格式 C语言中的的if语句共有多少种格式?
- 软硬件负载均衡器:F5、Array、Nginx、LVS、HAProxy
- 关于c#中的string
- TUXEDO中间件介绍及应用
- 网易云linux版本如何安装包,网易云音乐Linux版提供64位和32位ubuntu16.04安装包
- php流水系统,php流水账txt数据库版
- 小米HTML查看器记住密码,小米路由器 SSH 密码计算工具,开启小米SSH访问
- 文本分类上分利器: Bert微调trick大全
- Python手册(Machine Learning)--statsmodels(列联表和多重插补)
- 2015年中国数据库技术大会(DTCC)PPT合集
- 利用Python求解八数码难题
- 曝光的原理 自动曝光
- 设计模式之禅学习总结
- Oracle根据时间查询
- 景观生态学原理| 2 景观生态学的理论与核心
- 德语语法笔记——连词
- Google 和 Meta 正在接受欧盟和英国反垄断监管机构对”Jedi Blue”的调查
- [附源码]java毕业设计企业职工福利发放管理系统
热门文章
- 解决MySQL--发生系统错误 1069。 由于登录失败而无法启动服务。
- 拉勾教育《产品经理高薪训练营》课程思维导图
- 移动互联网思维的5F法则
- 网络搭建与应用2022国赛环境无误版
- web网页设计期末课程大作业:环境保护主题网站设计——农业三级带表单带js(14页)HTML+CSS+JavaScript
- 零基础怎么建模?超详细建模教程——第一期
- 杰理AC692X---开关机实现方式介绍
- python写抽奖转盘_python实现转盘效果 python实现轮盘抽奖游戏
- 刷机时代落幕——刷机现状、原理及方法步骤
- 个人号的微信API接口,微信机器人二次开发