Java暑假复习2

本文介绍了面向对象编程的基本概念,包括构造器的作用及其分类,强调了无参数构造器与有参数构造器的使用场景。讲解了`this`关键字在对象初始化中的意义和用途,并通过JavaBean展示了封装原则。此外,还通过商品类和电影类的例子,演示了如何进行数据封装以及对象的创建和遍历。最后,对比了成员变量和局部变量的区别,帮助理解面向对象编程中的核心概念。
摘要由CSDN通过智能技术生成

面向对象的学习:

 

构造器:

1、构造器的作用:
        初始化类的对象,并返回对象的地址。
2、构造器有以下两种:
        无参数构造器:初始化对象时,成员变量的数据均采用默认值。

public ClassName() {


    }


        有参数构造器:在初始化对象的时候,同时可以接收参数为对象进行赋值。

public ClassName(int id, String name, double price, int buyNumber) {
        this.id = id;
        this.name = name;
        this.price = price;
        this.buyNumber = buyNumber;
    }

3、注意事项:

任何类定义好,都会有一个默认的无参数构造器,不需要写。

然如果定义了有参数构造器,还想用无参数构造器,那么就一定需要写一个无参数构造器。

 

this 关键字:

        this关键字出现在构造器和成员方法中,代表当前对象的地址。

52bd93e7924d4134a14ec3a66f47eb15.png

 而this关键字可以用于指定访问当前对象的成员。

未使用this关键字:

e89907ab6c2e49179ebf9db57e19458d.png

使用this关键字:

7ba04e5e16c04f3d98cb2bd8075da4ed.png

 

面向对象有:封装、继承、多态三大特征。

面向对象三大特征之一:封装

封装原则:对象代表什么,就得封装对应的数据,并提供数据对应的行为。

列如:人关门,是门自己关了,而不是人去关的,只是门借助了人的作用力。

封装思想就是告诉我们:有什么事就去找对象,调用方法就好了。

JavaBean:

也可以称为实体类,其对象可以用于在程序中封装数据。

标准JavaBean须满足以下书写要求:

一般情况对成员变量使用private(私有、隐藏)关键字进行修饰(所修饰的成员只能在当前类中访问)

提供成员变量对应的set---() / get---()方法。

必须提供一个无参构造器;有参构造器可以不写。

进行封装的商品类:

package example4;

/**
对商品进行封装
*/
public class Goods {
    private String name;
    private double price;
    private int Nub;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public int getNub() {
        return Nub;
    }

    public void setNub(int nub) {
        if (nub <= 99 && nub >= 0){
            Nub = nub;
        }else {
            System.out.println("输入数量有误!");
        }

    }
}

对其中的"数量(Nub)"变量进行测试:

4c217b07d1b4431eb4ce3bb92a9418ca.png

成员变量和局部变量的区别:

区别成员变量局部变量
类中位置不同类中,方法外常见于方法中
初始化值不同有默认值,无需初始化        没有默认值,使用前需赋值
内存位置不同堆内存栈内存
生命周期不同随着对象的创建而存在,随着对象的消失而消失随着方法的调用而存在,随着方法的运行结束而消失
作用域 所在的大括号中

对面向对象大致理解后的一个小案例:

        创建一个电影展示界面,需要有一个电影类,在创建电影对象,从而打印这些的对象的数据。以下是实现的代码:

       电影类,以及对数据的封装:

package example5;

public class Movie {
    private String name;
    private double score;
    private String director;

    public Movie() {
    }

    public Movie(String name, double score, String director) {
        this.name = name;
        this.score = score;
        this.director = director;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }

    public String getDirector() {
        return director;
    }

    public void setDirector(String director) {
        this.director = director;
    }
}

测试类:

package example5;

public class Test {
    public static void main(String[] args) {
        Movie[] movies = new Movie[3];
//        创建3个电影对象并存入数组
        movies[0] = new Movie("让子弹飞",9.9,"姜文");
        movies[1] = new Movie("扬名立万",9.6,"刘循子墨");
        movies[2] = new Movie("神奇动物:邓布利多之迷",9.6,"大卫-叶茨");
//         进行遍历
        for (int i = 0; i < movies.length; i++) {
            Movie m = movies[i];
            System.out.println("电源名称:"+m.getName());
            System.out.println("电源评分:"+m.getScore());
            System.out.println("导演:"+m.getDirector());
            System.out.println("-----------------------");
        }
    }
}

运行结果:

a3cb90bc2f80447e8c8457fb654e4aed.png

面向对象的基础学习就完成了!

感谢“黑马程序员”提供的网络学习资源!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值