Java 面向对象

一. 面向对象

1.1 面向对象与面向过程的区别;

面向过程:面对需求“我该如何实现?”,按照分析的步骤一步步亲历亲为。(强调过程,线性思维)

面向对象:面对需求“我该找谁取实现?”,这个‘谁’就是对象,不关注过程。(强调对象,宏观思维)

​ 两者是思维方式,思考角度不同的体现

1.2 面向对象的三大特征

  • 封装:隐藏内部的实现细节,对外开放公共的方法方式。
  • 继承:子类继承父类,就有权利使用父类中的内容(子承父业)。
  • 多态:同一种类型的对象执行同一个方法时可以表现出不同的行为特征。

1.3 面向对象的三大思想

  • OOA:面向对象分析(Object Oriented Analysis)
  • OOD:面向对象设计(Object Oriented Design)
  • OOP:面向对象程序(Object Oriented Programming )

1.4 如何构建一个对象:

类:事物的抽象描述。人类、植物类、动物类、类别。将实例个体中的共性抽取出来,归为一类。

对象:具体事物的实例。冰箱、空调、电脑、洗衣机、微波炉,万物皆可为对象 。

1.5 类和对象的关系

  1. 类是对一类事物的抽象描述,抽取对象像的部分。
  2. 对象是一类事物的实例,类的具体化表现形式。
  3. 类是对象的模板,对象是类的实体。

1.6 先有类,还是先有对象?

  • 构建:先有对象,才有的类
  • 实现:现有类才有的对象

1.7 类有属性和方法组成:

  • 属性(特征):事物具有的特点(名字,颜色,形状等)
  • 方法(行为):描述事物能做什么(吃饭,睡觉,行走等)

1.8 创建与使用

1.8.1 创建类格式:
修饰词 class 类名{
	// 成员变量: 不被static关键词修饰 ->> 实例变量
    修饰符 数据类型 变量名 = 赋值;
    
    // 成员方法: 不被static关键词修饰的方法 ->> 实例方法
    修饰符 返回值类型|void 方法名(参数列表){
        方法体;
        [return 返回值;]
    }
}
1.8.2 变量的分类

按照声明位置不同分为局部变量成员变量:

成员变量局部变量
类中的位置类中方法外方法中\代码块中的变量
作用范围类中方法中
初始值默认值没有默认值,使用前必须定义并赋值
内存中位置堆内存栈内存
生命周期随着对象的创建而存在,随着对象的消失而消失随着方法的调用而存在,随着方法的调用完毕而消失
1.8.3 创建对象格式:
类名 对象名 = new 类名()
1.8.4 使用对象访问类中的成员
对象名.成员变量;
对象名.成员方法();
1.8.5 类的实例:
/**
* 创建一个person类:
*   铁柱,大脚
*	姓名,性别。。。。外在的表现形式 ->> 变量(成员变量)
*	吃饭,睡觉。。。。。。内在的功能 ->> 方法(成员方法)
*
*   成员变量: 抽取出的共性--> 外在的表现形式
*   成员方法: 抽取的共性 --> 内在的能力、功能
*/
public class Person {
    public static void main(String[] args) {
        // 创建对象
        Person p1 = new Person();
        p1.name = "赵铁柱"; // p1.name 修改值
        String name = p1.name;
        // 打印输出
        System.out.println(name);
        // 调用方法
        p1.eat();
    }

    /* 属性、字段、域 */
    String name;
    /* 方法、功能 */
    public void eat(){
        System.out.println("吃饭");
    }
    public void sleep(){
        System.out.println("睡觉");
    }
}

1.8.6 成员变量无需初始化,因为会给一个默认值
数据类型默认值
基本类型整数(byte,short,int,long)0
浮点数(float,double)0.0
字符(char)‘\u0000’
布尔(boolean)false
引用类型数组,类,接口null

1.9 内存分析

但凡看见了new关键字,做三件事:

  1. 开空间(堆)。为对象在堆内存中开辟空间,成员变量会跟随对象进入到堆内存中并附初始值。
  2. 初始化。调用构造器为对象初始化信息。
  3. 指向引用。将地址返回给引用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寧三一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值