⛹️‍♀️ ⛹️ ⛹️‍♂️类和对象⛹️‍♀️ ⛹️ ⛹️‍♂️

概述✈️ 🚀 🛸 

什么是对象?

对象(Object)是一个应用系统中的用来描述客观事物的实体,是有特定属性和行为(方法)的基本运行单位。是类的一个特殊状态下的实例。对象可以是一个实体、一个名词、一个可以想象为有自己标识的任何东西,可以概括来说:万物皆对象。

什么是类?

类(Class)是Java代码的基本组织模块,使用来描述一组具有共同属性和行为对象的基本原型。是对这组对象的概括、归纳和描述表达。类是对象的模板,它定义了本类对象的所拥有的属性集和行为集,是对一组具有相同属性和相同方法的对象的定义。

类与对象有什么关系?

类和对象之间是抽象与具体的关系。类是一个模板,是对一类事物的抽象描述,而对象用于表示现实中该事物的个体。类是在对象之上的抽象,对象则是类的具体化,是类的实例。

类必须通过对象才可以使用,而对象中的属性和行为必须在类中定义。

代码实现类与对象的关系✈️ 🚀 🛸 

-----》定义一个学生类和学生对象

定义一个类,用来模拟“学生”事务,其中就有两个组成部分
定义一个类,用来模拟“学生”事务,其中就有两个组成部分

属性(是什么):
    姓名
    年龄
行为(做什么事):
    吃饭
    睡觉
    学习

对应到java的类当中,

成员变量(属性):
    String name;//姓名(数据类型  变量名称)
    int age;//年龄
成员方法(行为):
    public void eat(){} //吃饭
    public void sleep(){} //睡觉
     public void studying(){} //学习

注意事项
1.成员变量是直接定义在类当中的,在方法外边
2.成员方法不要写static关键字。
public class Student {
    //先写——成员变量
    String name;//姓名
    int age;
    //再写——成员方法
    public void eat(){
        System.out.println("吃饭饭");
    }
    public void sleep(){
        System.out.println("睡觉觉");
    }
    public void studying(){
        System.out.println("学习!");
    }
}
根据Student这个类,创建一个Studnet对象
通常情况下,一个类并不能直接使用,需要根据类创建一个对象,才能使用

1.导包:  也就是指出需要使用的类,在什么位置。
import 包名称.类名称;
import annian-code.MianXiangDuiXiang.Student;
对于和当前类属于同一个包的情况,可以省略导包语句不用写。

2.创建
格式: 类名称 对象名 = new 类名称();

3.使用
两种情况
1.使用成员变量:对象名.成员变量
2.使用成员方法:对象名.成员方法名(参数)
{也就是,想用谁,就用对象名点谁}

注意事项:
如果成员变量没有进行赋值,那么将会有一个默认值,规则和数组一样,
public class Demo02Student {
    public static void main(String[] args) {
        // 1.导包
        //我需要使用的Student类,和我自己Demo02Student位于同一个包下,所以可省略导包语句不写

        //2.格式:
        // 类名称 对象名 = new 类名称();
        Student stu=new Student();//根据Student类,创建了一个名为stu的对象

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

        System.out.println(stu.name);//null
        System.out.println(stu.age);//0默认值

        //改变对象当中成员变量数值内容
        //将右侧的字符串,赋值交给stu对象当中的name成员变量
        stu.name="赵丽颖";
        stu.age=30;
        System.out.println(stu.name);
        System.out.println(stu.age);
        System.out.println("=================");

        //  使用成员方法:对象名.成员方法名(参数)
        stu.eat();
        stu.sleep();
        stu.studying();
    }
}

--------------------------------------------------------------------------------------------------------------------------------

对象内存关系✈️ 🚀 🛸 

这里我们再定义一个Phone类和对象,来简述一下对象内存关系

Phone类 

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

    //成员方法
    public void call(String who){
        System.out.println("给"+who+"打电话");
    }
    public void sendMessage(){
        System.out.println("群发信息");
    }

Phone对象 

public class Demo02Phone {
    public static void main(String[] args) {
    
        Phone pho=new Phone();

        //成员变量
        System.out.println(pho.brand);//品牌null
        System.out.println(pho.price);//价格0.0
        System.out.println(pho.color);//颜色null
        System.out.println("=========================");

        pho.brand="华为";
        pho.price=5999.9;
        pho.color="幻境";
        System.out.println(pho.brand);//华为
        System.out.println(pho.price);//5999.9
        System.out.println(pho.color);//幻境
        System.out.println("=========================");

        //成员方法
        pho.call("任正非");
        pho.sendMessage();//群发短信

    }
}

 

一个程序内存划分为:堆、栈、方法区

我们的主方法和类的成员方法均在方法区当中

程序开始,main方法先进栈,创建Phone对象,凡是对象都要进入到堆当中,包括成员变量和成员方法,这里对象是通过地址值来进行传递的,即图上的0x666

当one.brand,one.color,one.call() , one.sendMessage()  之后,成员变量被赋值,成员方法被调用。

当one.call(), call方法进栈,以压栈的方式进入,同样,通过地址值0x333传递,当one.sendMessage() 同上过程。

随后,当程序方法执行完,sendMessage先出栈,call出栈,最后main方法出栈。

关于堆栈、方法区的知识大家可以去面向百度更加深刻的了解。 

《以上为本人对类和对象的基本认识,如有错误,请大家批评指正》

✈️ 🚀 🛸 ✈️ 🚀 🛸 ✈️ 🚀 🛸 ✈️ 🚀 🛸 

一起努力,一起加油

✈️  🚀 🛸 ✈️ 🚀 🛸 ✈️ 🚀 🛸 ✈️ 🚀 🛸 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值