Java开发——8.类和对象

​概述:

类:类是一组相关属性和行为的集合;类就是现实生活的一个事物,事物由属性和行为组成。
对象:对象是一类事物的具体体现。对象是类的一个实例,必然具备该类事物的属性和行为。
类和对象的关系:类是对象的抽象,对象是类的具体实现;类是抽象的,不占内存;对象是具体的,占用存储空间。

类:

类声明的脑图分析:

在这里插入图片描述

属性:

属性分为成员变量和局部变量;成员变量是在类中,方法之外定义的变量;局部变量是在方法中声明的变量。

以下字段为成员变量:
String name;
int age;
String sex;
以下字段为局部变量:
String ID =“202200205”;

public class Student {// 1.定义学生的属性
    String name;
    int age;
    String sex;// 2.定义学生能实现的方法
    public void learning(){
        String ID = "202200205";
        System.out.println(name+",可以好好学习!");
    }
    
}
常量:

用final关键字修饰的变量就是常量!常量一旦赋值是不能改变的,常量通常用全大写定义。
注:如果声明一个变量为常量,就必须在声明结束后直接赋值,否则编译无法通过。

//常量可以自定义但是有些类中,会有自己的常量
final String ID = "202200205"; 

以Math类,举例查看其中自定义好的常量;
在这里插入图片描述

注:Java类中已经定义好的常量一般都是具有特殊含义;所以定义为常量供用户选择;此处的常量由 static final 修饰,则此常量为终极常量,被static定义的常量/方法可以直接由 类名.常量名 调用。

public static void main(String[] args) {
  System.out.println(Math.PI); //方法名.常量名,即可实现输出常量值
}

方法/行为:

就是在类中定义的一系列操作;
如下在 Student 学生类中定义了 学习和吃饭 的方法,在类中可以定义多个不同名方法;注意:方法名不能和;类名相同,如果方法名和类名相同则为构造方法。

public class Student {// 1.定义学生的属性
    String name;
    int age;
    String sex;// 2.定义学生能实现的方法
    public void learning(){
        String ID = "202200205";
        System.out.println(name+",可以好好学习!");
    }
    public void eat(){
        System.out.println(name+"吃饭!");
    }
    
}

构造方法:分为无参构造方法和有参构造方法。

每次新建一个类,系统都会自动给该类生成一个无参的构造方法,供用户调用;但是有参方法需要手动创建;

注:如果自定义了一个有参构造方法的时候,系统则不会给该类再默认生成一个无参的构造方法了,需要手动创建一个无参构造方法。
构造方法的重写
重写:前提,有继承关系。子类继承父类中方法,就是重写;

重写

重写,子类重写父类中的方法,要求子类重写父类的方法的方法名和参数列表必须和父类保持一致。
//自定义一个学生类

public class Student {// 1.定义学生的属性
    String name;
    int age;
    String sex;// 2.定义学生能实现的方法
    public void learning(){
        String ID = "202200205";
        System.out.println(name+",可以好好学习!");
    }
    public void eat(){
        System.out.println(name+"吃饭!");
    }
     // 3.无参构造方法
    public Student(){
        System.out.println("我是无参构造方法!");
    }// 4.有参构造方法
    public Student(String name,int age){
        this.name = name; //此处是直接把传递进来的形参赋值给成员变量
        this.age = age;
    }
}
//自定义一个学生类的实现类
public class StudentAchieve {public static void main(String[] args) {
        // 1.使用无参构造方法实例化对象
        Student stu1 = new Student();//此处默认调用无参构造方法 
        stu1.name = "张三";
        stu1.age = 66;
        stu1.sex = "男";
        //2.调用Student类中的方法
        stu1.learning();
        stu1.eat();
        
        // 3.使用有参构造方法实例化对象
        Student stu2 = new Student("李四",66);
        //4.调用Student类中的方法
        stu2.learning();
        stu2.eat();
    }        
}

对象:

实例对象的脑图分析:

在这里插入图片描述

对象是类的实例化!

注:一个类可以new多个对象,但是每个对象的对象名不同!
上一期讲了Java中的内存分配,所以对于成员变量和局部变量的存储位置,相信大家都有了更加深刻的了解,只要是new出来的对象都存放在堆内存之中。

欢迎关注微信公众号:小红的成长日记,一起学Java!
欢迎关注微信公众号:小红的成长日记,一起学Java!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值