关于面向对象编程(oop)

面向对象编程(Object Oriented Programming,即OOP)

1,面向对象的概述

面向对象(Object Oriented)简称OO,它是一种编程思维,用于指导我们如何应对各种复杂的开发场景。

​ 在面向对象的世界中,它将一切都看作是对象。这里的对象有许多,它可以是现实世界中看得见摸得着的实体:人、小猫、小狗、飞机、课桌、铅笔、电视等等等等,都可以看作是对象。即————一切皆为对象

1.1,对象

​ 对象是现实生活中最常见也是随处可见的一种事务。如:一个具体的人小猫、小狗、飞机、课桌、铅笔、电视等。

1.2,类

在这里插入图片描述

​ 类是一种==抽象的==,类是一种有相同特性和行为的事务的统称,如果将一个具体的事务称为对象的话,那么类就是这些对象的一个统称。如:人类,花类

2,类的详细介绍

2.1,成员变量和成员方法

​ 成员变量:在java中成员方法定义在类中方法外,与普通变量定义无异只是位置不同。

而成员变量的作用范围在整个类存在期间都存在直到类失效。

​ 成员方法:定义格式如下

​ 修饰符(public | private | protected) 返回类型 方法名 (参数类型 参数名){

​ … //方法体

​ return 返回值;

}

​ 一个成员方法可以有返回值也可以无返回值,可以有参数也可以无参数,参数可以是:对象,基本数据类型 等

注意:当有返回值时返回值类型要与设置的返回类型一致。

public class demo {
    
    int n;//int类型的成员变量

    public static void main(String[] args) {		//主方法
    }
    public int sum(int a,int b){		//成员方法
        return a+b;
    }
}

2.2局部变量

​ 局部变量:在java中被定义在一个方法内部的变量。如上面的方法内部的a,b

局部变量是在方法被执行的时候被创建,在方法被销毁的时候就销毁,在使用的时候必须进行赋初值或者进行初始化才可使用,否则出现编译错误。

局部变量的有效范围:

​ 用个例子来举例:

在这里插入图片描述

2.3,this关键字

​ this是一个隐含的关键字,指本类的当前对象的引用,而这个当前对象不是指被new出来的对象而是指当前的调用者。

this关键字只能用于本类

2.4,静态变量和静态方法(static)

​ 提到静态变量和静态方法就离不开,关键字static,由关键字修饰的变量和方法称为静态变量和方法。

静态类的变量和方法可以使用

​ 类名.静态类成员 或

​ 对象.静态类成员 (不推荐)

因为这样的话会容易混淆静态成员与非静态成员

	静态变量与静态方法都是被类中的所有对象共享的
	静态符修饰的成员,是随着类的加载而加载的,优先于对象

静态方法不可以使用this关键字

​ static修饰的成员是跟随者类的加载而加载,而this是随着对象的创建而存在。所以静态先于对象创建,故不能使用this

静态方法只能调用静态成员变量和静态成员方法,不能调用成员变量和成员方法

​ static修饰的成员是跟随者类的加载而加载,而对象的创建在类加载之后而存在。所以静态先于对象创建,而成员变量和成员方法是在类加载之后出现,故只能调用静态成员变量和静态成员方法,不能调用成员变量和成员方法

主方法也设置为static

​ 将主方法设计为静态的,入口类,一加载,JVM就可以直接通过类名调用main方法,否则进入后还要创建对象调用main方法。因为static修饰的成员是跟随者类的加载而加载

总结static关键字要注意的点:

  • 静态方法不可以使用this关键字
  • 静态方法只能调用静态成员变量和静态成员方法,不能调用非静态方法
  • 局部变量不可以使用static关键字
  • 主方法要用static声明

2.5静态变量与成员变量的区别

所属不同类型

​ 静态变量属于类,所以也称为类变量
​ 成员变量属于对象,所以也称为实例变量(对象变量)

内存中的位置不同

​ 静态变量存储于JDK1.8之前 方法区的静态区, 在 JDK1.8之后 静态变量存储在堆内存中
​ 成员变量存储于堆内存

在内存出现时间不同

​ 静态变量随着类的加载而加载,随着类的消失而消失
​ 成员变量随着对象的创建而存在,随着对象的消失而消失

调用的方法不同

​ 静态变量可以通过类名调用,也可以通过对象调用,推荐使用类名调用
​ 成员变量只能通过对象名调用

2.6,构造方法

每个类都会自动创建一个默认的构造方法就是无参构造方法,也可以自己定义构造方法(有参构造方法)。

对象的创建就是通过构造方法实现,

public class MyClass {
    private int m;    // 定义私有变量
    MyClass() {
        // 定义无参的构造方法
        m = 0;
    }
    MyClass(int m) {
        // 定义有参的构造方法
        this.m = m;
    }
}

构造方法的特点

  • 方法名与类名相同
  • 可以有零个,一个或多个参数
  • 没有任何返回值,包括void
  • 默认返回类型就是对象类型本身
  • 只能与 new 运算符结合使用

注意

若构造方法定义了返回值类型或使用 void 声明构造方法没有返回值,编译时不会出错,但 Java 会把这个所谓的构造方法当成普通方法来处理。

3,对象的详细介绍

对象就是由类的实例化而来,指代一个具体的事务。

3.1,对象的创建

​ 在java语言中,通过new操作来实现一个对象的创建。每实例化一个对象就调用一次构造方法,而这个过程也就是对象创建的过程。如:

Test test = new Test();
Test test1 = new Test("a");
Test test2 = test;

在这里插入图片描述

3.2,对象访问属性和方法

​ 对象可以调用相关属性和方法

对象名.成员

对象名.方法

3.3,对象的销毁

​ 每个对象都有自己的生命周期,当生命周期结束对象也将毁灭,分配的内存地址被回收内存空间被java的垃圾回收机制所释放

public class NumberTest {
    public static void main(String[] args) {

        Number number =new Number(1,6);
        int a = number.add();
        int b = number.sub();
        int c = number.mul();
        double d = number.div();
        System.out.println("加:"+a+"减:"+b+"乘:"+c+"除:"+d);
		number = null;
    }
}

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值