JAVA面向对象入门(通俗理解)

目录

什么是面向对象

什么是成员方法和成员变量

什么是类

怎么创建对象和使用对象


什么是面向对象

        想要了解什么是面向对象,就先要了解什么是对象二字。

  • 对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。

        那么面向对象的主要思想是什么呢?

              比如在现实生活中买煎饼果子,你不需要知道怎么和面,怎么控制火候,怎么摊煎饼,你只需要找到一个卖煎饼果子的摊位,你只管给阿姨付钱,你就可以得到煎饼果子。

        在咱们程序中也一样,你不用关注这个过程,你只管找一个人帮你做事!这就是面向对象的思想。

        

什么是成员方法和成员变量

public class Dog {
    String breed;         //成员变量
    int size;             //成员变量         
    String colour;         //成员变量
    int age;                //成员变量
    
   public void eat() {                     //成员方法
       System.out.println("吃饭饭")
    }
 
   public void run() {                     //成员方法
          System.out.println("吃饭饭")
    }
       public static void main(String[] args) {   
}
 }

顾名思义:通过上边代码就可以得知,成员变量对应生活中的例子就是狗的状态,那么成员方法就对应狗的行为。

变量(状态)

成员变量:定义在类当中,方法以外

成员方法(行为)

成员方法:定义在类中 不写static关键字

什么是类

类:是一个模板,它描述一类对象的行为和状态。类也可以看成是创建 Java 对象的模板。

类可以理解为模型设计图:抽象出来的模型

而对象就是类的实体化 :也就是将模型实例化为手机实体

下图中汽车为类(class),而具体的每辆车为该汽车类的对象(object),对象包含了汽车的颜色、品牌、名称等。

        比如以上两张图都是类,也就对应现实生活中的模板,蓝图。

怎么创建对象和使用对象

对象的创建:

格式: 类名 对象名 = new 类名();

Student stu = new Studen();    //*根据Studen类  创建了一个名为stu的对象

对象的使用:

分为两种情况:

使用成员变量:对象名.成员变量名

使用成员方法:对象名.成员方法名(参数) (也就是,想用谁,就用对象名点儿谁。)

注意事项:

如果成员变量没有进行赋值,那么将会有一个默认值,规则和数组一样。(String 为 nulll ......)

System.out.println(stu.age);          //成员变量的使用

stu.name="CSDN";                   //成员变量的赋值       

        成员变量和局部变量的区别

  • A:在类中的位置不同
    • 成员变量:在类中方法外
    • 局部变量:在方法定义中或者方法声明上
  • B:在内存中的位置不同
    • 成员变量:在堆内存(成员变量属于对象,对象进堆内存)
    • 局部变量:在栈内存(局部变量属于方法,方法进栈内存)
  • C:生命周期不同
    • 成员变量:随着对象的创建而存在,随着对象的消失而消失
    • 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
  • D:初始化值不同
    • 成员变量:有默认初始化值
    • 局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。
  • 注意事项:
    • 局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
    • 基本数据类型变量包括哪些:byte,short,int,long,float,double,boolean,char
    • 引用数据类型变量包括哪些:数组,类,接口,枚举

this关键字的使用

区分成员变量与局部变量:

public static void main(String[] args) {
        //注:可以使用this进行区分成员变量和局部变量
         name = "CSDN";           //  这里指的是给局部变量赋值
        this.name = "CSDN2";   //  这里是给成员变量赋值      
}

对象内存解释:

1、new出来的在内存的堆当中 不使用 则是默认的初始值(int 初始值为0,String 初始值为null,boolean初始值是false,double的初始值是0.0 等)

2、因为类是引用数据类型 所以赋值过程可以理解为地址的传递

当然 多个对象指向同一个堆内存的地址 那么修改数据将 (牵一发而动全身)

3、当类被使用时,对应的.class文件才被加载进内存

4、创建对象的本质是在堆内存中开辟空间

5、方法是在栈中执行的

6、局部变量随着方法执行进栈而进栈

7、成员变量随着对象被创建而进堆内存中

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值