面对对象基础

这篇博客介绍了Java中的面向对象编程概念,包括对象的创建、使用以及类的定义。示例展示了如何创建Student类,包含学号、年级和成绩属性,并生成20个随机学生对象,其中部分学生的年级由随机数确定。然后通过循环和条件判断,打印出所有三年级的学生信息。文章强调了toString方法在显示对象信息中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.面对对象指的是面对具体数据的行为

2.对象:就是计算机中的具体数据

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

注:可以使用类作为数据类型来形成对象集,也就相当于创建一个数组.例:

Student[ ] student = new Student[长度];也就相当于创建一个数组

②使用对象:对象名.变量名 (student.类中的成员变量)

③使用方法:对象名。方法名();(student.toString)

注:

从对应的地址池中找对应的数,在测试哪里就可以用访问地址的方法访问其中的值

3.类:就是现实生活中一类具有共同属性和行为的事物的抽象,确定对象拥有的属性和行为(就是数据信息的类型)注:类的重要性:是java程序的基本组成单位

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

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

4.类与对象的关系:①类是对象的抽象②对象是类的实体

l例题:

先知:

toString的用法:

@Override
    public String toString() {//从对应的地址池中找对应的数,在测试哪里就可以用访问地址的方法访问其中的值
        return "学号为" + number + ", 年级为" + state + ", 分数为" + score ;
    }

Math.random:Math.random方法是取随机数,得到的值为double,取值在0-1之间.

Math.round():Math.round(变量名)方法用于四舍五入取整,得到的值为long,()里加的是要改变的值

例题:

定义类Student,包含三个属性:学号number(int),年级state(int),成绩 score(int)。 
创建20个学生对象,学号为1到20,年级和成绩都由随机数确定。 
问题:打印出3年级(state值为3)的学生信息。 

分析:

①要创建一个定义类Student(注意类的创建多用大驼峰),其中的成员变量为学号number(int),年级state(int),成绩 score(int)。

②创建20个对象,学号要1-20,这里就可以用前面说的引用类作为数据类型,船家女一个对象集,也就是个数组 

③要求,打印出state为3的数用循环套分支来实现

首先创建一个Student类:

public class Student {
    //创建成员变量
    int number;
    int state;
    int score;

    @Override
    public String toString() {//从对应的地址池中找对应的数,在测试哪里就可以用访问地址的方法访问其中的值
        return "学号为" + number + ", 年级为" + state + ", 分数为" + score ;
    }
}

注意,这个类要和测试的类在同一个包内,这里就是用了toString的方法,就可以从地址池内取出相关的数据。

测试类:

public class Ceshi {
    public static void main(String[] args) {
        Student[] student = new Student[20];//引用类为数据类型的对象集
        for (int i = 0; i < 20; i++) {
            student[i] = new Student();//每循环一次,从前面的对象集数值中取出一个元素创建对象
            student[i].number = i + 1;//因为i从0开始,学号要求为1-20,所以每次加1
            double q = Math.random() * 2 + 1;//Math.random方法是取随机数,得到的值为double,取值在0-1之间,这里乘于2就是让得到的数翻倍,因为年机值不为0
            student[i].state = (int) Math.round(q);//Math.round(变量名)方法用于四舍五入取整,得到的值为long,()里加的是要改变的值
            double o = Math.random() * 100;
            student[i].score = (int) Math.round(o);
        }
        for (int i = 0; i < 20; i++) {//打印年级为3的同学信息
            if (student[i].state == 3) {
                System.out.println(student[i]);//!!!!!!!!!
            }
        }
    }

上面的toString运用在!号的部位,如果没有该方法,只会打印出来对应的地址名,的不出结果,同时注意因为年级数要1-3,而随机数Math.random取值范围在0-1内,让其翻倍同时,为了不让他等于0就加1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值