吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 991|回复: 9
收起左侧

[学习记录] Java学习第十九天

[复制链接]
HAIHAIHEI 发表于 2022-4-4 00:00
第十九天,有不对之处麻烦各位指正
为了方便理解,上面部分是昨天的,看过的可以直接跳到类和对象

面向过程和面向对象有什么区别
从语言方面出发:
        对于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 类名{
        //类体 = 属性 + 方法
        //属性在代码上以“变量”的形式存在(属性描述状态)
        //方法描述动作/行为
        }
       
        为什么属性是以变量的形式存在的:
        假设我们要描述一个学生
        学生包括那些属性:
                学号:
                姓名:
                性别:
                住址:
        答案:是因为属性对应的是数据,数据在程序中只能放到变量中
        结论:属性其实就是变量
       
        变量的分类:
        变量根据出现的位置进行划分:
                方法体当中声明的变量:局部变量
                方法体外声明的变量:成员变量(这里的成员变量就是属性)

免费评分

参与人数 2吾爱币 +1 热心值 +1 收起 理由
sanyuebeichen + 1 我很赞同!
lgc81034 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| HAIHAIHEI 发表于 2022-4-4 00:01
纯手打,如果有不对之处希望各位大佬指出,感激不尽(注:原谅我吧,今天外面跑了一天,只能水一点)
AIRTIM 发表于 2022-4-4 00:07
马西瓜 发表于 2022-4-4 01:48
majie007 发表于 2022-4-4 07:04
学习了,大佬
dipper 发表于 2022-4-4 09:30
很好的教程
hofer 发表于 2022-4-4 10:36
要真是纯手打,那就很不错了,感谢分享
sanyuebeichen 发表于 2022-4-4 12:40
我昨天也是学到了面向对象这个
头像被屏蔽
wanlinwo 发表于 2022-4-5 08:44
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 13:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表