java对象-已更改

对象

概述

  • 定义:
    万物皆对象,客观存在的事物皆是对象。
    是能够看得到摸得着的真实存在的实体。

  • 对象的属性:
    对象具有的各种特征,每个对象的每个属性都拥有特定的值。

  • 对象的行为:
    对象能执行的操作。

类和对象之间的关系

对象和类之间的关系:

  • ①对象是计算机中具体的数据信息;类是信息的数据类型。
  • ②对象是能够看得到、摸得着的真实存在的实体;类是对现实生活中一类具有共同属性和行为的事物的抽象。
  • ③对象是类的实体;类是对象的抽象。

对象的创建和使用

创建对象

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

使用对象

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

// 使用成员方法
格式:对象名.方法名()

案例:
需要在phoneDemo类的所在包下,创建phone类。

// 110
public class phone {
    //编写类的成员变量
    String brand;
    int price;
    
    //成员方法
    public void call(){
        System.out.println("打电话");
    }
    public void sendMessage(){
        System.out.println("发短信");
    }
}

public class phoneDemo {
    public static void main(String[] args) {
        //创建对象
        phone p = new phone();
        //使用对象
        //使用对象的成员变量
        System.out.println(p.price);//输出0
        //类phone的成员变量price 定义 int类型,其对应的默认值是0
        System.out.println(p.brand);//输出null
        //类phone的成员变量brand 定义 string类型,其对应的默认值是null
        //在没有定义具体值的时候,输出的是变量的默认值。

        //给变量赋值再输出
        p.price = 2999;
        p.brand = "小米";
        System.out.println(p.price);
        System.out.println(p.brand);

        //使用对象的成员方法
        p.call();
        p.sendMessage();
    }
}
单个对象

案例:学生
思路:

①定义一个学生类(Student)
成员变量:name、age
成员方法:study();
        doHomework();
        
②定义一个学生测试类(StudentDemo)
要做测试,有主方法 = main方法

③在学生测试类中通过创建对象完成对成员变量和成员方法的调用
	给成员变量赋值,输出成员变量的值
	调用成员方法

对象内存图(单个对象)
图示:
单个对象内存图
代码:
学生类的创建以及测试代码。

// 110
//定义学生类
public class Student{
    // 定义成员变量
    String name;
    int age;
    //定义成员方法
    public void study(){
        System.out.println("学习");
    }
    public void doHomework(){
        System.out.println("做作业");
    }
}

//写测试类,要注意在main方法里写对象的创建和使用。
public class StudentDemo {
    public static void main(String[] args){
        //创建对象
        Student stu = new Student();

        System.out.println(stu);//com.itheima110.Student@1b6d3586

        //使用成员对象
        System.out.println(stu.name);//null
        System.out.println(stu.age);//0

        //对成员对象赋值
        stu.name = "xhj";
        stu.age = 25;

        System.out.println(stu.name);//xhj
        System.out.println(stu.age);//25

        //使用成员
        stu.study();//学习
        stu.doHomework();//做作业
    }
}
多个对象

对象内存图(多个对象)

图示:
多个对象内存图
2022/6/29
同一类实例化的对象,对象属性不同,对象方法相同;
同一类实例化的对象,在堆内存开辟的存储空间不同;

代码:

// 110
public class StudentDemo2 {
    public static void main(String[] args){
        //创建第一个对象
        Student stu1 = new Student();
        stu1.age = 30;
        stu1.name = "汐沫";
        System.out.println(stu1);
        //com.itheima110.Student@1b6d3586
        System.out.println(stu1.age + ", " + stu1.name );
        // 输出30, 汐沫
        stu1.study();//学习
        stu1.doHomework();//做作业
        //创建第二个对象
        Student stu2 = new Student();
        stu2.age = 20;
        stu2.name = "西贝";
        System.out.println(stu2);
        //com.itheima110.Student@4554617c
        System.out.println(stu2.age + ", " + stu2.name );
        //输出20, 西贝
        stu2.study();//学习
        stu2.doHomework();//做作业
    }
}
多个对象指向相同的内存图

图示:
多个对象指向相同的地址
2022/6/29

多个对象指向相同的内存区域,一个对象修改成员属性,则另一个对象的成员属性也会被修改。

代码:

// 110
//多个内存指向相同内存图
public class StudentDemo3 {
    public static void main(String[] args){
        //创建对象1
        Student stu1 = new Student();
        stu1.age = 33;
        stu1.name = "汪苏泷";
        System.out.println(stu1);
        //com.itheima110.Student@1b6d3586
        System.out.println(stu1.name + ", " + stu1.age);
        //汪苏泷, 33
        //创建对象2
        Student stu2 = stu1;
        stu2.age = 36;
        stu2.name = "许嵩";
        System.out.println("stu2:" + stu2);
        //stu2:com.itheima110.Student@1b6d3586
        System.out.println("stu1:"+stu1);
        //stu1:com.itheima110.Student@1b6d3586
        System.out.println("stu2:"+stu2.name + ", " + stu2.age);
        //stu2:许嵩, 36
        System.out.println("stu1:"+stu1.name + ", " + stu1.age);
        //stu1:许嵩, 36
    }
}

源文件声明规则

概述

一个源文件只能有一个public类。(源文件 = java文件)
一个源文件可以有多个非public类。
源文件的名称应该和public类的类名保持一致。
如果一个类定义在某个包中,那么package语句应该在源文件的首行。
如果源文件包含import语句,应该放在package和类定义之间。如果没有package语句,应该在源文件在最前面。
import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值