面向对象总结

本文详细介绍了面向过程与面向对象编程的区别,重点阐述了面向对象的三大核心特性——抽象、封装和多态。通过类和对象的概念,探讨了如何创建和使用对象,并解释了成员变量和局部变量的差异。此外,还深入讲解了构造方法的作用。面向对象编程让复杂问题变得简单,提高了代码的重用性和可扩展性。
摘要由CSDN通过智能技术生成

面向过程和面向对象的区别

 1.面向对象是基于面向过程的
 2.面向对象能让复杂的问题简单化,程序员不需要了解具体的实现过程,只需要指挥对象去实现功能(从执行者变成指挥者)。
 举例:

  洗衣服:
 使用面向过程思考:放入衣服 -> 打开洗衣机 -> 洗衣服 -> 关闭洗衣机
 使用面向对象思考:洗衣服我们操作了洗衣机这个对象,所以只要给洗衣机这个对象增加这些功能,就可以实现洗衣服操作。放入衣服 -> 洗衣机:打开、洗衣服、关闭
 3.面向过程:强调步骤;面向对象:强调对象。

面向对象的三大核心特性

可重用性:代码重复使用,减少代码量,提高开发效率。面向对象的三大基本特征(继承、封装和多态)都围绕这个核心。
可扩展性:指新的功能可以很容易地加入到系统中来,便于软件的修改。
客观理性:能够将功能与数据结合,方便管理。

抽象

 所谓的抽象,就是把同一类事物中共有的特征(属性)和行为(功能、方法)进行抽取,归纳,总结。

抽象的过程其实就是面向对象编程的核心思想

类:用来描述一类具有相同特征(属性)和相同行为(方法)的对象。(可以比喻为模板)

Java中用class关键字来描述类

 成员属性(变量):对应的就是事物的属性
 成员方法:对象事物的行为
 类的定义:
 `public class 类名{
//成员变量
//成员方法}`
类和对象的关系:
   类是对象的抽象
  对象是类的实例化

对象

对象(Object)是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。

它们是有形的,如一个人、一件物品;也可以是无形的,如一个计划、一次交易。(万事万物,皆对象)
创建对象

类名 对象名 = new 类名();

使用对象:
 调用成员变量:

对象名.成员变量;

 调用成员方法:

 对象名.方法名(参数列表);
匿名对象
 A:什么是匿名对象
	就是没有名字的对象
 	B:匿名对象应用场景
	a:调用方法,仅仅只调用一次的时候。
	b:匿名对象可以作为实际参数传递

全局变量(成员变量)

 定义在方法的外部,类的内部。使用范围是整个类
 不需要初始值
 存储在堆内存中(对象存在时才在存在)

局部变量

(方法中的变量)

定义在方法的内部或者某一个语句块的内部,适用范围仅限于方法内或者语句块内
必须有初始值
存储在栈内存中
成员变量和局部变量的区别
A:在类中的位置不同
	成员变量:在类中方法外
	局部变量:在方法定义中或者方法声明上
B:在内存中的位置不同
	成员变量:在堆内存
	局部变量:在栈内存
C:生命周期不同
	成员变量:随着对象的创建而存在,随着对象的消失而消失
	局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
D:初始化值不同
	成员变量:有默认初始化值
	局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。
	
注意事项::	局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。

成员方法

 语法:

 访问修饰符 返回值类型 方法名称(参数列表){
方法体
}

访问修饰符:public
 返回值类型由返回值决定
成员变量可以直接在成员方法中使用,但是main方法中如果调用成员变量和方法必须通          过对象.属性名\方法名(参数列表)的形式来调用

 成员方法之间的调用,直接写方法名(参数列表)即可

构造方法

1. 对象一建立就会调用构造方法,可以创建对象,给成员变量(属性)初始化。

2.    方法名和类名相同
3.   没有返回值和void,没有return
 4.  不能被static等关键字修饰
 5.  可以方法重载(定义多个参数列表不同的构造方法)
6.  当一个类中没有写构造方法时,系统会默认给该类一个默认的无参构造方法。当自己定义构造方法后默认的构造方法就不存在了。(自己定义有参的构造方法后,如果还想使用无参的构造方法,就要自己再添加一个无参的构造方法)
public class Animal {
    String name;
    int age;
    //构造方法
    public Animal(){
        System.out.println("------无参的构造方法------");
        name = "动物";
        age = 0;

    }
    public Animal(String name,int age){
        System.out.println("------有参的构造方法------");
        this.name = name;
        this.age = age;
    }

    public static void main(String[] args) {
        //创建对象
        Animal a1 = new Animal();
        System.out.println(a1.name+","+a1.age);

        Animal a2 = new Animal("兔子",2);
        System.out.println(a2.name+","+a2.age);
    }
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值