2021-10-7-学习日志14-面向对象

本文介绍了面向对象编程中的类和对象概念,包括类作为对象的抽象,对象作为类的实例。详细讲解了类的定义,包含属性和行为,以及如何创建和使用对象。通过实例展示了如何定义`Phone`类和`Student`类,并在测试类中操作对象的属性和调用方法。最后探讨了对象在内存中的表示,包括单个对象和多个对象的情况。
摘要由CSDN通过智能技术生成

1.类和对象

1.1)万物皆对象,客观存在的事物皆为对象

类是对现实生活中一类具有共同属性和行为的事物的抽象

类的特点:

①类是对象的数据类型

②类是具有相同属性和行为的一组对象的集合

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

行为:对象能够执行的操作

类:类是对现实生活中一类具有共同属性和行为的事物的抽象,确定对象将会拥有属性和行为

对象:是能够看得到摸得着的真实存在的实体

类是对象的抽象,对象是类的实体

1.2)类的定义

类的重要性:是java程序的基本组成单位

类的组成:属性和行为

属性:在类中通过成员变量来体现(类中方法外的变量)

行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)

类的定义步骤:

①定义类

②编写类的成员变量

③编写类的成员方法

eg:

public class 类型{

        //成员变量

        变量1的数据类型 变量1;

        变量2的数据类型 变量2;

        ...

        //成员方法

        方法1;

        方法2;

        ...

}

/*
    类的定义

    类的定义步骤:
        定义类
        编写类的成员变量
        编写类的成员方法

    手机类;
        类名;
        手机(phone)

        成员变量;
        品牌(brand)
        价格(price)

        成员方法;
        打电话(call)
        发短信(sendMessage)
*/
public class Phone{
    //成员变量
    String brang;     //品牌brang(小米、华为、苹果)这里是 字符串 所以用String  
    int price;        //价格price(3000、4000) 这里是数字用 int定义

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

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

1.3)对象的使用

创建对象:

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

②范例:Phone p =new Phone();

创建对象:

①使用成员变量

格式:对象名.变量名

范例:p.brand

②使用成员方法

格式:对象名.方法名()

范例:p.call()

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

        //使用成员变量
        System.out.println(p.brand);
        System.out.println(p.price);
    }
}

分析:
        //创建对象
         Phone p = new Phone();

这个p是new出来的,是放在 堆内存堆内存的成员是有默认值的

        String brand;

brand是String类型,String类型是引用类型,所以默认值是null

        int price;

price是int类型,所以默认值是0

所以运行之后是:

null
0

 赋值后:

package com.itheima;

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

        //使用成员变量
        System.out.println(p.brand);
        System.out.println(p.price);

        p.brand =  "小米";
        p.price = 2999;

        System.out.println(p.brand);
        System.out.println(p.price);

        //使用成员方法
        p.call();
        p.sendMessage();
    }
}

赋值后运行:

null
0
小米
2999
打电话
发短信

1.4)案例:学生

需求:首先定义一个学生类,然后定义一个学生测试类,在学生测试类中通过对象完成成员变量和成员方法的使用。

思路:

①定义一个学生类

类名:Student

成员变量:name,age

成员方法:study(),doHomework()

②定义学生测试类

类名:StudentDemo

因为要做测试,所以有一个主方法:main方法

③在学生测试类中通过对象完成成员变量和成员方法的使用

给成员变量赋值,输出成员变量的值

调用成员方法


public class StudentDemo {
    public static void main(String[] args){
        //创建对象
        Student s = new Student();

        //使用对象
        System.out.println(s.name + "," + s.age);

        s.name = "林青霞";
        s.age = 30;

        System.out.println(s.name + "," + s.age);
        //成员方法
        s.study();
        s.doHomework();
    }
}

运行:

null,0
林青霞,30
好好学习,天天向上
键盘敲烂,月薪过万

2.对象内存图(单个对象)

 

 

/*
    学生类
 */
public class Student{
    //
    String name;
    int age;

    //
    public void study(){
        System.out.println("好好学习,天天向上");
    }
    public void doHomework(){
        System.out.println("键盘敲烂,月薪过万");
    }
}

 测试类:

public class StudentDemo {
    public static void main(String[] args){
        //创建对象
        Student s = new Student();

        //使用对象
        System.out.println(s.name + "," + s.age);

        s.name = "林青霞";
        s.age = 28;

        System.out.println(s.name + "," + s.age);
        //成员方法
        s.study();
        s.doHomework();
    }
}

 运行:

null,0
林青霞,28
好好学习,天天向上
键盘敲烂,月薪过万

2.2对象内存图(多个对象)

 

/*
    学生类
 */
public class Student{
    //
    String name;
    int age;

    //
    public void study(){
        System.out.println("好好学习,天天向上");
    }
    public void doHomework(){
        System.out.println("键盘敲烂,月薪过万");
    }
}

测试类:

public class StudentDemo02 {
    public static void main(String[] args){
        //创建第一个对象并使用
        Student s1 = new Student();
        s1.name = "李雷";
        s1.age = 28;
        System.out.println(s1.name + "," + s1.age);
        s1.study();
        s1.doHomework();
        //创建第二个对象并使用
        Student s2 = new Student();
        s2.name = "韩梅梅";
        s2.age = 26;
        System.out.println(s2.name + "," + s2.age);
        s2.study();
        s2.doHomework();
    }
}

运行:

李雷,28
好好学习,天天向上
键盘敲烂,月薪过万
韩梅梅,26
好好学习,天天向上
键盘敲烂,月薪过万

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值