Java学习第十九天
第十九天,有不对之处麻烦各位指正为了方便理解,上面部分是昨天的,看过的可以直接跳到类和对象
面向过程和面向对象有什么区别
从语言方面出发:
对于C语言来说,是完全面向过程的
对于c++语言来说,是一半面向对象,一半面向过程(c++是半面向对象的)
对于Java语言来说,是完全面向对象的
什么是面向过程的开发方式:
面向过程的开发方式主要的特点是:
注重步骤,注重的是实现这个功能的步骤
第一步干什么
第二步干什么
...
另外面向过程也注重实现功能的因果关系
因为A所以B
因为B所以C
因为C所以D
....
另外面向过程也注重实现功能的因果关系
因为A所以B
因为B所以C
因为C所以D
...
面向对象中没有对象的概念。只是实现这个功能的步骤以及因果关系
面向过程有什么缺点
面向过程最主要的是每一步与每一步的因果关系,其中A步骤因果关系到B步骤,A和B联合起来形成一个子模块,子模块和子模块之间又因为因果关系结合到一起,假设其中任何一个因果关系出现问题(错误),此时整个系统的运转都会出现问题。(代码和代码之间的耦合度太高,扩展力太差)
面向过程有什么优点
对于小型项目,采用面向过程的方式进行开发,效率较高,不需要前期进行对象的提取,模型的建立,采用面向过程方式可以直接干活。一上来就直接编写代码,编写因果关系,从而实现功能
什么是面向对象的开发方式:
采用面向对象的方式进行开发,更符合人类的思维方式。人类就是以“对象”的方式去认识世界的。使用面向对象更容易让我们接受
面向对象就是将现实世界分割成不同的单元,然后每个单元都实现成对象,然后驱动起来,让每个对象都协作起来形成一个系统
采用面向对象的方式进行开发:
耦合度低,扩展力强
面向对象主要关注的是:实现步骤以及整个过程
面向过程主要关注的是:对象A 对象B 对象C 然后对象ABC组合,或者CBA组合...
当我们采用面向对象的方式贯穿整个系统的话,涉及到三个术语:
OOA:面向对象分析
OOD:面向对象设计
OOP:面向对象编程
整个软件的开发过程,都是采用OO进行贯穿的
实现一个软件的过程:
分析(A)-->设计(D)-->编程(P)
面向对象的三大特征
封装
继承
多态
任何一个面向对象的编程语言都包括这三大特征
注意:Java只是面向对象编程语言的一种
除了Java语言外,还有其他很多很多的编程语言是面向对象的
类和对象:
面向对象中最主要的一词是:对象
什么是类:
类实际上在现实世界当中是不存在的,是一个抽象的概念。是一个模板,是我们人类大脑进行思考,总结,抽象的一个结果。
类本质上是现实世界当中某些事物具有共同特征,将这些共同特征提取出来形成的概念就是一个类,类就是一个模板
什么是对象:
对象是实际存在的个体。(真实存在的个体)
比如说:盖饭是类的话,那么鱼香肉丝盖饭,宫保鸡丁盖饭,红烧茄子盖饭...这些就属于是对象,且属于盖饭这个类
在Java语言中,要想得到对象,必须先定义类,对象是通过类这个模板创造出来的
类就是一个模板:类中描述的是所有对象的共同特征信息
对象就是通过类创造出的个体
术语:类:不存在的,人类大脑思考总结一个模板(这个模板当中描述了共同特征)
对象:实际存在的个体
实例:对象还有另一个名称实例
实例化:通过类这个模板创建对象的过程,叫做:实例化
抽象:多个对象具有共同特征,进行思考总结抽取共同特征的过程
类--【实例化】-->对象(实例)
对象--【抽象】-->类
类是一个模板,是描述共同特征的一个模板
类=属性+方法
属性来源于:状态
方法来源于:动作
public class 类{
//属性-->状态,多见于名词
属性1;
属性2;
//方法-->动作,多见于动词
方法1(){
}
方法2(){
}
}
有共同特征就可以抽象一个模板出来
例:可以定义一个学生类
public class Student{
//属性
//姓名
//性别
//身高
//方法
public .... sing(){
}
public .... dance(){
}
public .... study(){
}
}
java软件工程师在开发中起到的作用
为什么要做软件开发:
解决现实生活中的一些问题
软件开发既然是为了解决现实世界当中的问题,那么首先Java软件必须能够模拟现实世界。
其实软件是一个虚拟的世界。这个虚拟的世界需要和现实世界一一对应,这才叫模拟
Java软件工程师是一个转换的桥梁,需要具备观察+抽象的能力,需要观察现实世界当中对象1和对象2有什么共同特征,然后在Java程序中使用类来描述这些共同特征,然后通过类实例化对象,让对象之间协作起来形成系统,模拟现实世界
类的定义:
怎么定义一个类,语法格式是什么:
[修饰符列表] class 类名{
//类体 = 属性 + 方法
//属性在代码上以“变量”的形式存在(属性描述状态)
//方法描述动作/行为
}
为什么属性是以变量的形式存在的:
假设我们要描述一个学生
学生包括那些属性:
学号:
姓名:
性别:
住址:
答案:是因为属性对应的是数据,数据在程序中只能放到变量中
结论:属性其实就是变量
变量的分类:
变量根据出现的位置进行划分:
方法体当中声明的变量:局部变量
方法体外声明的变量:成员变量(这里的成员变量就是属性)
纯手打,如果有不对之处希望各位大佬指出,感激不尽{:1_893:}(注:原谅我吧,今天外面跑了一天,只能水一点) 好耶,学习! 达内学的吧 学习了,大佬 很好的教程 要真是纯手打,那就很不错了,感谢分享 我昨天也是学到了面向对象这个
页:
[1]