面向对象——Java成长之路

面向对象

Hello!CSDN的小伙伴们。
这里是老汉的Java成长之路专栏,感兴趣的话就关注老汉并订阅本系列的专栏一起学习吧。

前言

本期老汉为大家介绍Java面向对象的相关知识,在初识这一期我们有提到过Java是面向对象的一种语言,那么什么是面向对象呢,下面就跟随老汉来一起学习一下吧。

一、什么是对象

万物皆对象、客观存在的事物
对象:用来描述客观事物的一个实体,由一组属性和方法构成

二、什么是面向对象

人关注对象
人关注事物信息
也就是把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。

三、类

类是模子,确定对象将会拥有的特征(属性)和行为(方法)
类的特点:
1.类是对象的类型
2.具有相同属性和方法的一组对象的集合

四、什么是对象的属性和方法

1.属性

对象具有的各种静态特征
俗气点来说就是这个对象“有什么”

2.方法

对象具有的各种动态行为
俗气点来说就是这个对象“可以做什么”

五、类和对象的关系

类是抽象的概念,仅仅是模板
对象是一个你能够看得到、摸得着的具体实体
类是对象的类型
对象是特定类型的数据

具体开发过程中,先定义类再实例化对象

六、单一职责原则

单一职责原则,也称为单一功能原则
英文Single Responsibility Principle 缩写SRP
是面向对象设计中的一个重要原则
一个类,应该有且只有一个引起变化的原因

在程序设计中,尽量把不同的职责,放在不同的职责中,即把不同的变化原因,封装到不同的类中。(一个类只存放同类型属性与方法)

七、对象实例化

1.实例化对象的过程分为两部分:
声明对象 Person per
实例化对象 new Person();
Person per=new Person();
在这里插入图片描述

2.每次new对象会产生新的实例化对象
Person per1=new Person();
Person per2=new Person();
在这里插入图片描述

3.多个对象可以指向同一块实例化空间
Person per1=new Person();
Person per2=per1;
在这里插入图片描述

注意:
对象必须被实例化之后才能使用
对象间的引用传递,实际上传递的是堆内存空间的使用权(栈中存放的是对象在堆中的地址)

八、构造方法

1.构造方法与类同名且没有返回值
2.构造方法的语句格式
public 构造方法名(参数/无参){
//初始化代码
}
3.只能在对象实例化的时候调用
4.当没有指定构造方法时,系统会自动添加无参的构造方法
5.当有指定构造方法,无论是有参、无参的构造方法,都不会自动添加无参的构造方法
6.一个类中可以有多个构造方法

九、this关键字

this:当前对象的默认引用
this的使用如下:
1.调用成员变量,解决成员属性和局部变量同名冲突

    /**
     * 双参构造方法
     * @param name 姓名
     * @param age 年龄
     */
    public Person(String name,int age){
        this.name=name;
        this.age=age;
    }

注意:不使用this对name与age进行区分,传入的参数无法对对象属性进行赋值,但程序可正常运行。

解决方法:
a将参数名进行更改,更改为name1,age1或者其他不与属性名产生同名冲突的参数名;
b使用this关键字加以区分。

2.调用成员方法

    //成员方法:笑、睡觉
    /**
     * 笑的方法
     */
    public void smile(){
        this.sleep();//利用this调用睡觉的方法
        System.out.println("这个人在笑");
    }

    /**
     *睡觉的方法
     */
    public void sleep(){
        System.out.println("这个人在睡觉");
    }

3.调用对象的构造方法

    /**
     * 无参构造方法
     */
    public Person(){

    }

    /**
     * 双参构造方法
     * @param name 姓名
     * @param age 年龄
     */
    public Person(String name,int age){
        this();//调用无参构造方法
        this.name=name;
        this.age=age;
    }

注意:此处的this只允许放在代码中的第一行(第一条语句),其他位置均会报错。

本期小结

到这里我们就结束了本期关于面向对象的学习,本期知识点基本为概念性知识,需要自行配合相关编写操作加以理解和掌握。最后,老汉在这里送各位一句话一同共勉——“改变就有希望,突破才能变强。”,感谢各位观看。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王老汉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值