面向对象(上)

面向对象(上)

2020.12.7 复习

学习面向对象内容的三条主线
1.Java类及类的成员
2.面向对象的三大特征
3.其它关键字

面向过程与面向对象

![image.png](https://img-blog.csdnimg.cn/img_convert/b86b2118b3c74f6a3f1e82c5089c2d11.png#align=left&display=inline&height=306&margin=[object Object]&name=image.png&originHeight=422&originWidth=1029&size=138626&status=done&style=none&width=747)

面向对象:Object Oriented Programming
面向过程:Procedure Oriented Programming

经典例子:人把大象放冰箱
![image.png](https://img-blog.csdnimg.cn/img_convert/f7280b6dac55a173d27893d08b2568ce.png#align=left&display=inline&height=381&margin=[object Object]&name=image.png&originHeight=635&originWidth=1081&size=110078&status=done&style=none&width=648)
![image.png](https://img-blog.csdnimg.cn/img_convert/1d152b998f05e6721cc35e9116bc52d2.png#align=left&display=inline&height=323&margin=[object Object]&name=image.png&originHeight=532&originWidth=1072&size=151908&status=done&style=none&width=650)

类与对象

![image.png](https://img-blog.csdnimg.cn/img_convert/af7f10e691aec8a6f6c83cbd311e128e.png#align=left&display=inline&height=285&margin=[object Object]&name=image.png&originHeight=455&originWidth=922&size=76722&status=done&style=none&width=577)
![image.png](https://img-blog.csdnimg.cn/img_convert/4be2a94763cf0b094b2702eae103d5b8.png#align=left&display=inline&height=323&margin=[object Object]&name=image.png&originHeight=552&originWidth=1033&size=233577&status=done&style=none&width=605)
![image.png](https://img-blog.csdnimg.cn/img_convert/74dcae55f2b8acb127b862fc59e7a793.png#align=left&display=inline&height=319&margin=[object Object]&name=image.png&originHeight=548&originWidth=1057&size=194413&status=done&style=none&width=615)

![image.png](https://img-blog.csdnimg.cn/img_convert/69b036a612cecbcdf8b543531430b746.png#align=left&display=inline&height=524&margin=[object Object]&name=image.png&originHeight=651&originWidth=817&size=386382&status=done&style=none&width=658)

对象的创建和使用

第一步:创建类、设计类的成员

第二步:创建类的对象

第三步:调用对象的结构 通过 对象.属性或者 对象.方法

第一步:
![image.png](https://img-blog.csdnimg.cn/img_convert/5f41721c6a03e8309aa0a42dd515f026.png#align=left&display=inline&height=377&margin=[object Object]&name=image.png&originHeight=397&originWidth=623&size=187412&status=done&style=none&width=591)
第二步:
![image.png](https://img-blog.csdnimg.cn/img_convert/07540f4b0884adf27fdb2082cc5f670d.png#align=left&display=inline&height=133&margin=[object Object]&name=image.png&originHeight=141&originWidth=623&size=87315&status=done&style=none&width=586)
第三步:
![image.png](https://img-blog.csdnimg.cn/img_convert/3f9c13f33cbfc56fc3053b85029ffb1e.png#align=left&display=inline&height=292&margin=[object Object]&name=image.png&originHeight=292&originWidth=432&size=124529&status=done&style=none&width=432)

Ps:访问机制了解一下
![image.png](https://img-blog.csdnimg.cn/img_convert/64b76b9d67696a522db8b07a8186c45c.png#align=left&display=inline&height=214&margin=[object Object]&name=image.png&originHeight=344&originWidth=1010&size=79190&status=done&style=none&width=628)

对象创建的内存解析

![image.png](https://img-blog.csdnimg.cn/img_convert/2c7df3d94059077b4b494222eaf150df.png#align=left&display=inline&height=381&margin=[object Object]&name=image.png&originHeight=560&originWidth=1098&size=426486&status=done&style=none&width=747)
深入的就不说了因为当时学的时候没考虑方法区常量池

匿名对象

![image.png](https://img-blog.csdnimg.cn/img_convert/a23539561bd36db1c386466a4a0b9cc6.png#align=left&display=inline&height=267&margin=[object Object]&name=image.png&originHeight=347&originWidth=963&size=76314&status=done&style=none&width=740)
**

类的成员之属性与方法

![image.png](https://img-blog.csdnimg.cn/img_convert/d2a3436d41f5ec98b140cc97d7b961e4.png#align=left&display=inline&height=383&margin=[object Object]&name=image.png&originHeight=633&originWidth=1023&size=145809&status=done&style=none&width=619)
![image.png](https://img-blog.csdnimg.cn/img_convert/65301c2ff8a5f9d94a0db4fb7402b81e.png#align=left&display=inline&height=456&margin=[object Object]&name=image.png&originHeight=574&originWidth=820&size=142237&status=done&style=none&width=651)
![image.png](https://img-blog.csdnimg.cn/img_convert/7d3d2686500d3fb1b4e4b5bd0510fc0f.png#align=left&display=inline&height=307&margin=[object Object]&name=image.png&originHeight=485&originWidth=1046&size=83575&status=done&style=none&width=663)

属性(成员变量) vs  局部变量
 * 1.相同点:
 * 1.1定义变量的格式: 数据类型 变量名 = 变量值
 * 1.2先声明,后使用
 * 1.3变量都有对应的作用域(权限)
 *
 *
 * 2.不同点:
 *  2.1 在类中声明位置的不同
 *  属性: 直接定义在类的一对{}中
 * 局部变量:声明在方法内、方法行参、代码块内、构造器形参、构造器内部的变量
 *
 * 2.2 关于权限修饰符的不同
 *  属性:可以在声明属性时,指明其权限,使用权限修饰符。
 *     常用的权限修饰符:private、public、缺省、protected
 *  局部变量:不可以使用权限修饰符。
 * 
 *  2.3 默认初始化值的情况
 *  属性:类的属性,根据其类型,都有默认初始化值。
 *     整型(byte、short、int、long):0
 *     浮点型(float、double):0.0
 *     字符型 (char):0 (或’\u0000’)
 *     布尔型(boolean):false
 *     引用数据类型(类、数组、接口):null
 * 
 *  局部变量:没有默认初始化值。
 *     意味着:我们在调用局部变量之前、一定要显示赋值。
 *     特别的:形参在调用时,我们赋值即可。
 * 
 *  2.4 在内存中加载的位置:
 *  属性:加载到堆空间中(非static、static放在方法区的)
 *  局部变量:加载到栈空间

![image.png](https://img-blog.csdnimg.cn/img_convert/01887e6f687c4aced7f2d2aab0c2bcee.png#align=left&display=inline&height=360&margin=[object Object]&name=image.png&originHeight=551&originWidth=1095&size=117288&status=done&style=none&width=716)
![image.png](https://img-blog.csdnimg.cn/img_convert/a6254bc4e987b79d6e1f114242b08a37.png#align=left&display=inline&height=375&margin=[object Object]&name=image.png&originHeight=568&originWidth=1093&size=129535&status=done&style=none&width=721)
![image.png](https://img-blog.csdnimg.cn/img_convert/8247d560ba88cdc2a90634c76b35e6b6.png#align=left&display=inline&height=395&margin=[object Object]&name=image.png&originHeight=554&originWidth=950&size=142247&status=done&style=none&width=678)

内存解析来一个
![image.png](https://img-blog.csdnimg.cn/img_convert/b569a7fba09c303fe0f7266051d9a92a.png#align=left&display=inline&height=351&margin=[object Object]&name=image.png&originHeight=565&originWidth=1081&size=114635&status=done&style=none&width=671)

方法的重载overload

![image.png](https://img-blog.csdnimg.cn/img_convert/ad461001d67cf9dd47692491f69947c3.png#align=left&display=inline&height=353&margin=[object Object]&name=image.png&originHeight=514&originWidth=985&size=116172&status=done&style=none&width=677)
做个小练习:
![image.png](https://img-blog.csdnimg.cn/img_convert/d222e8a5dfc1eee4383ef6e592d313ae.png#align=left&display=inline&height=406&margin=[object Object]&name=image.png&originHeight=527&originWidth=897&size=86798&status=done&style=none&width=691)

可变形参:
![image.png](https://img-blog.csdnimg.cn/img_convert/c8e323d59f69c71cc9725832da142c21.png#align=left&display=inline&height=242&margin=[object Object]&name=image.png&originHeight=435&originWidth=1077&size=94630&status=done&style=none&width=599)

每日一考与复习

面向对象思想编程内容的三条主线分别是什么
① 类及类的成员:属性、方法、构造器;代码块、内部类
② 面向对象的三大特征:封装、继承、多态
③ 其它关键字:this,super,abstract,interface,static,final,package,import
 
面向对象的编程思想?
(类、对象;面向对象的三大特征;。。。)

谈谈你对面向对象中类和对象的理解,并指出二者的关系?
类:抽象的、概念上的内容
对象:实实在在存在的一个个体。 New出来了,在内存中实实在在有这么一个空间
对象是由类派生出来的。

_3. _面向对象思想的体现一:类和对象的创建和执行操作有哪三步?
① 创建类
② 类的实例化 (创建类的对象)
③ 调用对象的结构:”对象.属性” “对象.方法”
_
4. 画出如下代码在执行时的内存分配情况

class Car{
   
       String color = "red";
       int num = 4;
       void show(){
   
        int a = 10; 局部变量都在栈空间中
           System.out.println("color="+color+",num="+num);
        }
  }
class CarTest {
   
 public static void main(String[] args) {
   
   Car c1 = new Car();   
  Car c2 = new Car(); 
   c1.color = "blue";  
   c1.show();  
   c2.show
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值