java基础—面向对象

本文深入浅出地介绍了面向对象编程的概念,通过对比面向过程的思考方式,阐述了面向对象如何通过类和对象来组织代码。通过实例展示了如何创建和使用对象,解释了类与对象的区别,并探讨了对象在内存中的存储。此外,还简单提及了Java中的类创建和对象实例化。最后,提到了栈、堆和方法区在JVM内存管理中的作用。
摘要由CSDN通过智能技术生成

面向对象

母胎solo怎么办? 那就自己new一个对象

在Java武侠界中,流传着这么一句话:万事万物皆对象

注意区分:

所谓面向对象,就是,以类/对象来作为最小单位,考虑的是谁来做

所谓面向过程,就是,强调功能行为,考虑怎么做

还是举一个 最 常见的 例子 :把大象装进冰箱

我也不知道大象会不会反抗,也不知道抬不抬得动,更别说冰箱能塞进一头大象了

这里其实也可以说明,大到宇宙,小到原子,在码界中都只是一个对象 ,可能觉得很抽象,别急!!我们一步一步来看

我们先用面向过程的思维来看:

把打开冰箱

把大象塞进去

把冰箱门关上

接下来来看看 面向对象 是怎么 操作的

以类/对象 作为最小单位,先找到主体:人 冰箱 大象

{
        打开(冰箱){ 
                冰箱.打开功能();
           }
           
        抬(大象){ 
               大象.进入(冰箱);
         }

        关闭(冰箱){
              冰箱.关闭功能();
        }
 }


冰箱{

      打开功能(){
         }

      关闭功能 (){
        }
}

大象{
     进入(){
      }
}

解析: 首先三个主体,创建三个类,人这个类里面有三个方法,打开冰箱,把大象抬起来,把冰箱关上,打开冰箱,主体是冰箱,冰箱有打开功能,所以去调用冰箱这个类的打开功能,抬起大象,去调用大象这个主体里面的进入冰箱功能,最后关上冰箱,还是冰箱才有关闭功能,所以去调用冰箱的方法

这就是采用面向对象的思维去处理问题 ,强调具备功能的对象

这里有一个 类 跟 对象 的 概念

类: 是一个抽象的概念,表示的是有一个共性的东西,类中定义属性跟方法

对象: 一个独立的个体,每个对象有自己独特的属性

举个例子:

汽车是一个类,宝马,奥迪,大众 这些都是这个类的对象

对象又有一些自己的属性跟行为,比如 宝马 有自己的属性:品牌,颜色,名字,有自己的行为:跑

又比如动物是一个类,这里就不细分什么食草动物,食肉动物,什么什么科了

别杠,杠就是你对 图片图片图片

这个类中有狗,猫等这些对象, 狗这个对象有自己的属性:颜色,品种 有自己的行为:叫,摇尾巴,吃,睡觉等等

类和对象的创建

直接来个例子: 写一个person类,这个类有自己的属性跟方法


class  Person { 
    //属性
    String name = "zhangsan"; // 姓名
    int age;  // 年龄  若想要有初始值  int age =18; 
    ing sex  //性别,1 男 0 女
    
    // 方法,行为
    public  void  eat(){
       System.out.println("人会吃饭")
    }
    public  void  speak(){
       System.out.println("人会说话")
    }
    public  void  sleep(){
       System.out.println("人会睡觉")
    }
     
}

上述是一个类,类创造出来了,接下来就要创建对象去使用,在java中创建对象很简单,直接new 就好了,new 出来的对象,获取当中方法,属性,直接类名调用,类名.属性名,类名.方法名

 public static void main(String[] args)  {
        Person person = new Person();
        System.out.println(person.name);
        person.eat();
        person.sleep();
        person.speak();
    }

我们也可以对类中的属性进行赋值

    Person person = new Person();
        person.name="lisi";
        person.age=18;
        person.sex=1;
        System.out.println(person.name);
        System.out.println(person.age);
        System.out.println(person.sex);

输出结果
在这里插入图片描述
到这里,相信对 类 跟 对象 有了 一定的认识,再回过头来看大象放进冰箱这个例子,是不是对面向对象有更深层的认识

扩展

来看一看对象创建的内存解析:

首先来看虚拟机

在这里插入图片描述
具体JVM虚拟机运作,优化方面,在后续架构处理会专门来讲解,这边就不过多赘述啦,主要来看栈,堆,还有方法区,这是我们今天的主角

栈:指的是虚拟机栈,主要用于存储局部变量,在局部变量表中存放了各种基本数据类型,对象引用类型等等,方法执行完,会自动释放

堆:这个区域主要存放对象,可以说对象就是在堆内存中创建(后续的优化也主要是对堆进行优化)

方法区:用于存储被虚拟机加载的类信息,常量静态常量,以及编译后的代码

就拿我们创建的person类来举例:

在这里插入图片描述

写在最后:

以上就是本期的全内容了~

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值