Java中的类与对象(基础篇七)

Java是一门面向对象的编程语言,面向对象是一种程序设计思想,我们都是在面向对象思想的指引下去设计、开发计算机程序。Java中有“万物皆对象”的说法,这里的对象泛指现实中一切事物,每个事物都具有有自己的属性和行为。

一、类和对象介绍

类:是一组相关属性和行为的集合。举例:手机

对象:是一类事物的具体体现。举例:小米10

类与对象的关系:

  • 类是对一类事物的描述,是抽象的。

  • 对象是对一类事物的实例,是具体的。

  • 类是对象的模板,对象是类的实体。

类的定义:

现实世界的一类事物:

属性:事物的状态信息   行为(功能):事物能够做什么。

Java中用class描述事物也是如此:

成员变量:对应事物的属性 成员方法:对应事物的行为

格式:

public class ClassName {  //大驼峰  见名知意
  //属性---->成员变量
    //行为/功能--->成员方法
}
  • 定义类:就是定义类的成员( 成分 ),包括成员变量(属性)和成员方法(行为/功能)。

  • 成员变量:和以前定义变量几乎是一样的。只不过位置发生了改变。在类中,方法外

  • 成员方法:和以前定义方法几乎是一样的。只不过把static去掉

类的定义格式举例:

学生:

属性: 姓名 年龄 成绩........

行为: 学习  吃饭  睡觉 打篮球

public class Student {
    //成员变量
    String name;//姓名
    int age;//年龄


    //成员方法
    //学习的方法
    publicvoid study() {
        System.out.println("好好学习,天天向上");
    }


    //吃饭的方法
    publicvoid eat() {
        System.out.println("学习饿了要吃饭");
    }
}

对象及使用

创建对象格式

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


类型名  变量名 = new 类型名();
Student xiaoming = new Student();

使用对象访问类中的成员:

变量名.成员变量;//访问成员变量  使用 .
变量名.成员方法();//访问成员方法 使用 .

类与对象的练习

public class Phone {
    // 成员变量
    String brand; //品牌
    int price; //价格
    String color; //颜色


    // 成员方法
    //打电话
    public void call(String name) {
        System.out.println("给"+name+"打电话");
    }


    //发短信
    public void sendMessage() {
        System.out.println("群发短信");
    }
}

定义测试类:

public class Test02Phone {
    public static void main(String[] args) {
        //创建对象
        Phone p = new Phone();


        //输出成员变量值
        System.out.println("品牌:"+p.brand);//null
        System.out.println("价格:"+p.price);//0
        System.out.println("颜色:"+p.color);//null
        System.out.println("------------");


        //给成员变量赋值
        p.brand = "锤子";
        p.price = 2999;
        p.color = "棕色";


        //再次输出成员变量值
        System.out.println("品牌:"+p.brand);//锤子
        System.out.println("价格:"+p.price);//2999
        System.out.println("颜色:"+p.color);//棕色
        System.out.println("------------");


        //调用成员方法
        p.call("小明");
        p.sendMessage();
    }
}

二、对象的内存图

1. 一个对象调用一个方法内存图

在栈内存中运行的方法,遵循“先进后出,后进后出”的原则。变量phone指向堆内存中的空间,寻找方法信息,去执行该方法。方法并不是在堆内存中,而是在方法区中。

2. 两个对象调用一个方法内存图

对象调用方法时,根据对象中方法标记(地址值),去类中寻找方法信息。这样哪怕是多个对象,方法信息只保存一份,节约内存空间。

3. 对象作为参数传递到方法中的内存图

引用类型作为参数,传递的是地址值。所以在main方法中给phone属性赋值,对象传入show方法中能够打印出对应设置的值。

三、成员变量和局部变量区别

成员变量( 属性,成员属性 , 字段)

变量根据定义位置的不同,我们给变量起了不同的名字。

public class Car{
    String color;  //成员变量
    public void drive(){
        int speed = 80;    //局部变量
        System.out.println("时速:"+speed);
    }
}

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

不同点
局部变量成员变量
在类中的位置不同
方法中或方法声明上类中,方法外
作用范围不一样方法中类中
初始化值的不同
没有默认值,必须先定义,赋值,后使用有默认值
在内存中的位置不同栈内存堆内存
生命周期不同随着方法的调用而存在,随着方法调用完毕消失
随着对象的创建而存在,随着对象的消失而消失

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

故里学Java

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

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

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

打赏作者

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

抵扣说明:

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

余额充值