飞道的博客

Java笔记名晨总结07- 类和对象 - 初级

329人阅读  评论(0)

类和面向对象编程 - 初级
什么是面向对象编程?
意思是交个女朋友,面对女朋友编程吗?
很多程序中的概念,实际的意思跟它表面的意思会有一些不一样。
假如我们要开发一个坦克大战的游戏
我们这个游戏有一些属性
当前剩余多少条命(没命的话,游戏结束,开始有3条命)
当前游戏的分数(每次杀死敌人得分)
Boss是否死亡(死亡重新开始游戏,损失一条命)
我们有一个主角(坦克)它有一些属性
等级(等级越高,攻击力越强,初始1级)
当前血量
我们有一些种类的敌人
普通敌人,铜敌人,黄金敌人
不同敌人的攻击力和血量不一样
敌人可以自己移动
交互
可以控制主角移动
可以发射子弹攻击敌人
敌人会自动追踪主角,并进行攻击

在我们写的程序有很多的代码的时候,我们可以把程序中的东西进行分类,跟主角相关的是一类,跟敌人相关的是一类,跟整个游戏相关的是一类。
通过分类可以让程序变得更加有结构。在程序中可以使用类(class)对代码进行分类,当使用类编程的时候,使用创建出来的变量称之为一个对象。这就是传说中的面向对象编程。

面向对象和面向过程的区别。面向过程里面没有对象,强调的开发一个功能的步骤和过程,一步一步类,面向对象我们操作处理的是一个个的对象,(详细的每个功能的步骤和过程都封装在了类里面,通过类分类划分模块)程序更加结构化。(更加适合开发大型项目,更加便于后期的维护)

如何通俗易懂地举例说明“面向对象”和“面向过程”有什么区别?
https://www.zhihu.com/question/27468564

面向对象(类、对象)的三个特征:
封装、继承、多态(后面慢慢理解)

一个类表示一个类别(比如上面的例子,有主角 敌人 游戏管理系统)
通过一个类管理这个类别的所有相关的东西。比如敌人,主角

我们可以定义一个人主角类,来控制主角相关的属性和行为(方法)的管理。
这里所说的属性和行为,在我们程序中叫做成员变量、成员方法。

怎么定义类?
class 类名{
//成员变量(这个类有的属性)
//成员方法(这个类有哪些行为,有哪些功能)
}
怎么声明对象
类名 对象名;
定义好了类,为什么要利用类定义变量(对象)?
一个类相当于一个模板,利用模板可以生产实例。
类相当于车工厂里面的车模(模具),利用车模可以生成可以实际使用的很多辆车。
车模 对象
(敌人类 和 很多个敌人)

分析下主角类有哪些属性和行为?

如何利用类创建对象?

使用属性、调用行为

大象装进冰箱问题
分析有哪些类
大象类,冰箱类

对象之间的赋值(引用的赋值)

成员变量和局部变量
定义的位置
什么时候占用内存
所占用内存的位置
什么时候所占内存被销毁
初始值

当把一个对象当做一个方法的参数的时候
因为类是引用类型,所以在方法内修改引用类型里面的数据的时候,原引用类型里面的 数据也被修改了!

什么是匿名对象?
如果这个对象只使用一次的时候

Java中的垃圾回收机制GC(JVM)

教务管理系统
如果我们要开发一个教务管理系统。这个教务管理系统是给学校使用的,用来管理学生和老师的,比如学生的成绩信息管理,老师所有信息管理…等。

学生类创建
老师类创建

对象是如何在内存中存储的

访问修饰符 private
(项目开发中,我们开发的类不止给我们自己使用也给团队中的其他人使用)
可以修饰成员变量,可以修饰成员方法
封装:
把不需要外界访问的属性都隐藏起来
提供方法让外界访问
优点:
让代码结构更加清晰
比较安全(编写代码不容易出错,特别是大项目)
使用:
所有属性私有化
提供getter和setter方法访问

关于this关键字
在类定义的时候使用
this代表当前对象
优点:
通过this区分方法参数和成员变量
通过this方便IDE给出提示(后面eclipse演示)

构造方法(用来构造对象的)
什么是会被调用(new的时候)
默认构造方法(只有没有任何构造方法的时候,系统才会提供默认无参的构造方法)
格式:
修饰符 类名(参数){}


转载:https://blog.csdn.net/qq_33961136/article/details/108563908
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场