JAVA类和对象(构造方法、方法重载、this关键字)

Java是一门完全面向对象的编程语言;类和对象是面向对象编程的基础和核心。
面向对象的编程思想是来源于现实生活;面向对象编程是使用代码来模拟现实生活中的场景。

1.现实生活中有哪些是对象?
对象:在现实生活中只要是一个具体的物体就是一个对象。
你所看到的任何一个物体,你所想的任何一个物体都是一个对象。

举例:某一台电脑、某一个手表、某一个杯子、某一个学生、...

你会从哪些方面去描述对象,分别有些什么内容?
    某一台电脑
        特征:大小、颜色、品牌、价格、内存、CPU、硬盘、显卡、网卡、声卡、扬声器、...
        功能:联网、打字、存储、运行软件、计算、显示、开机、关机、...
    某一个学生
        特征:姓名、分数、外貌、性格、家庭住址、性别、年龄、爱好、...
        行为:打游戏、学习、运动、看电视、睡觉、吃饭、说话、走路、...

2.类的组成
现实生活中是怎样对对象进行分类的呢?
根据对象相似的特征和相似的行为(功能/用途)进行分类;生活中的类是抽象的。

程序中的类是怎样的呢?
    程序中的类是根据现实生活中对象的特征和行为(功能/用途),再按照程序中类的固定格式进行的抽象定义。
    程序中的类由两个部分组成:1.属性  2.方法
    属性是根据对象的特征进行定义的;
    方法是根据对象的行为(功能/用途)进行定义的。

3.类的基本格式
public class 类名 {
//定义属性的格式
访问修饰符 数据类型 属性名;

    //定义方法的格式
    访问修饰符  返回值数据类型  方法名(数据类型  参数名,...){

    }
}
Java类中的访问修饰符有:private、默认的、protected、public。
注意:Java中类是基本单位,是模板。

4.实例化对象和调用方法属性的格式
实例化对象的关键字:new
格式:
类名 对象名 = new 类名();

调用属性和方法的格式:
    对象名.属性名
    对象名.方法名(参数值,...);

5.场景:朱露在学习Java课程中,学完该课程后,朱露的学分要增加3分。
1.找出场景中的对象以及对象的特征和行为(功能/用途):
朱露
特征:姓名、学分
行为:学习(Java课程)
Java课程
特征:名字、学分、课时
2.根据对象的特征和行为,按照程序中类的固定格式进行类的抽象定义:
有2个对象,需要定义2个类;
朱露抽象定义为Student学生类;
Java课程抽象定义为Subject课程类。
3.定义主函数的格式,在主函数中实例化对象调用属性和方法:

Java程序中的类是由两个部分组成:1.属性 2.方法
属性是根据对象的特征进行定义的;
方法分为两类:1.普通方法 2.构造方法
普通方法是根据对象的行为(功能/用途)进行定义的。

实例化对象
类名 对象名 = new 构造方法(参数值,…);
类名 对象名 = new 类名(参数值,…);

7.构造方法
构造方法的格式:
访问修饰符 构造方法名(数据类型 参数名,…){

    }
    注意:1.构造方法名必须要和类名完全一致,包括大小写;
        2.构造方法不能定义返回值数据类型的。
        3.类会默认提供一个无参数的构造方法;如果你自定义了构造方法,则默认的
        构造方法会被覆盖,只能使用自定义的构造方法。

构造方法的作用:
    1.实例化对象;
    2.给属性设置初始值。

每使用一次构造方法都会生成一个新的对象。

构造方法和普通方法的区别:
    每个类必须至少有一个构造方法,只有权限修饰符,方法名必须与类名一致不是自定义
的话,编译器会自动给定一个无参构造方法,构造方法是在实例化时必须调用的,作用是初始化属性,没有返回值
,不能重写,可以重载,接口没有构造函数,抽象类可以有。
普通方法不是static修饰的,类实例化后按需要调用,必须有返回值,就算是没有返回值也得是void修饰,可以被
重写,可以被重载

8.方法重载
方法(构造方法和普通方法)重载的条件:
1.方法名必须要完全一致;
2.方法所带的参数个数、参数类型、参数顺序至少要有一个不同。

方法重载后的调用:
    根据方法所带的参数来决定。

现实生活中什么样的情况下需要使用方法重载?
    普通方法:看(书)、看(人)
    构造方法:学生(学分)、学生()
            在一个类中创建矩形(x,y,width,height)
            在一个类中创建圆角矩形(x,y,width,height,arc)
            实例化红楼梦中每一个人物对象。
                贾宝玉出生的时候带通灵宝玉。
                薛宝钗出生的时候不带。

9.this关键字
当参数名和属性名完全一致的时候,Java会采用就近原则进行赋值操作(参数名)。
在此时如果要区分属性和参数,就必须要使用this关键字,例如:this.name = name;

this(参数值,...);
上面这一行代码的作用是用来调用带对应参数的构造方法。

调用方法中的普通方法格式如下:
    this.方法名(参数值,...);
    方法名(参数值,...);

this到底表示谁呢?
    当前使用这个方法的对象。
    谁在调用方法,方法中的this就是谁。
    类似于生活中的"我"。

猜你喜欢

转载自blog.csdn.net/lzq1326253299/article/details/82049473
今日推荐