面向对象
编程思想
面向过程
考虑事物发展的过程,即 按照顺序步骤去做
面向对象
事物中存在的对象
在建立对象与对象的关系
对象
概念:
生活中: 实际存在的事物就是对象
代码中: 模拟生活中实际存在的对象
万事万物皆对象
如何创建一个对象?
语法:
类名 对象名 = new 类名(实参列表);
本质:
调用类中的构造函数
要求;
调用构造函数的时候,传入实参列表 要与 形参列表 的数据类型 数据长度 顺序一致
如何使用对象调用属性?
语法:
对象名.属性名字; 获取对象中属性的值
对象名.属性名字 = 值; 给对象中的属性赋值
如何使用对象调用方法?
语法:
对象名.方法名字(实参列表);
注意:
在本类中调用本类中的方法,可以使用this
要求;
调用构造函数的时候,传入实参列表 要与 形参列表 的数据类型 数据长度 顺序一致
类
概念:
将多个对象的共同点抽取出来,这样的概念就叫做类
如何创建一个类?
语法:
权限修饰符 class 类名(大驼峰命名规则){
}
权限修饰符: public
定义的位置:
目前只能定义在类外;
类中有什么?
属性:
变量(成员变量)
构造函数:
特殊的方法 也称为 构造方法
方法;
别名:函数
可以做什么
---------------------------------------------------------------------------------------------------
属性语法:
数据类型 属性名字;
构造函数语法:
权限修饰符 类名(与类 的 名字要一致)(形参列表){
this.属性 = 形参;
...
}
方法语法:
权限修饰符 返回值类型 方法名字(形参列表) {
方法体;
return xxx;
}
属性的作用 :
描述对象的静态特征
构造函数的作用 :
为了创建该类的对象
方法的作用 :
描述对象的动态特征
类与对象的关系
生活中:
先有对象 在有类
代码中:
先有类 才可以创建对象
this的使用
概念:
this 调用的是当前类中的
使用:
1. 局部变量和成员变量重名,就可以利用this.属性名了区分两者的区别
2. 在本类的构造函数中调用本类中其它的构造函数,就可以使用 this(实参列表);
注意:
只能写在第一行,不能形成死循环
3.在本类方法中调用本类中其它方法,可以直接调用,不用写this
对象的创建过程
语法:
类名 对象名字 = new 类名(实参列表);
过程:
在堆内存中开辟内存
给对象的属性赋初始值 (即对应类型的默认值)
执行构造函数的代码
将栈中的引用指向堆中开辟的内存地址
匿名对象
语法:
new 类名(实参列表);
匿名对象的创建没有创建对象名字
缺点:
代码的阅读性比较差
创建出 的匿名对象只能使用一次
使得代码结构混乱
作业
创建类的语法格式是?
类中有什么?定义位置与定义语法
如何创建对象?
如何使用对象调用属性与方法?
当局部变量与成员变量重名时如何区分?
请使用代码创建一下对象
德玛,男
阿珂,女
德邦,男
使用德玛对象释放Q技能
使用阿珂对象释放R技能
使用德邦对象平A
请创建矩形类,并在其中提供获取周长与面积的方法
张三去网吧上网,判断张三是否可以上网(使用面向对象思想编程)
张三,男,21岁