• 【21天学习挑战赛】—Java编程进阶之路(4)


    在这里插入图片描述

    活动地址:CSDN21天学习挑战赛

    学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
    想系统/深入学习某技术知识点…
    一个人摸索学习很难坚持,想组团高效学习…
    想写博客但无从下手,急需写作干货注入能量…
    热爱写作,愿意让自己成为更好的人…


    学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
    想系统/深入学习某技术知识点…
    一个人摸索学习很难坚持,想组团高效学习…
    想写博客但无从下手,急需写作干货注入能量…
    热爱写作,愿意让自己成为更好的人…

    个人名片:

    🐼作者简介:一名大一在校生
    🐻‍❄️个人主页:小新爱学习.
    🐼个人WeChat:hmmwx53
    🕊️系列专栏:零基础学java ----- 重识c语言
    🐓每日一句:人生没有一劳永逸,想不被抛弃,只有自己努力

    活动地址:CSDN21天学习挑战赛


    学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
    想系统/深入学习某技术知识点…
    一个人摸索学习很难坚持,想组团高效学习…
    想写博客但无从下手,急需写作干货注入能量…
    热爱写作,愿意让自己成为更好的人…


    欢迎参与CSDN学习挑战赛,成为更好的自己,请参考活动中各位优质专栏博主的免费高质量专栏资源(这部分优质资源是活动限时免费开放喔~),按照自身的学习领域和学习进度学习并记录自己的学习过程。您可以从以下3个方面任选其一着手(不强制),或者按照自己的理解发布专栏学习作品,参考如下:

    **

    创作计划

    **
    1,机缘

    我是一名普二学生,由于疫情原因大一下班学期也是没有开学,不甘堕落于是在互联网这片汪洋大海中,摸寻着前进的方向,也是偶然的机会接触到了CSDN,在这里有一群志同道合的朋友一起努力,于是自己也加入了进了,一篇两篇,也收获了很多的粉丝,推动着我前进…

    2,收获

    在CSDN这个大家庭里,每天都过得很充实,尤其是有不错的粉丝量,文章上了热榜,都会让我高兴半天,也结识了很多优质博主,像凉哥,哪吒…

    3,日常

    创作已经成为记录生活的一部分了,这里有我成长的点滴…

    4,憧憬

    有朝一日我也能成为优质博主,有自己的铁粉团队…

    **

    学习计划

    **
    1,学习目标

    这21天我们可以分为3周,每周更新三篇

    2,学习内容

    • 第二周:周一
    • 面向对象,
    • 包括面向对象三大特征,
    • 关键字private,this
      第二周:周三
    • static关键字
    • 权限修饰符,
    • 常量,
    • 枚举
      第二周: 周六
    • 抽象类,接口
    • 内部类等概念!

    3,学习时间
    每周一,周三,周六

    4,学习产出:

    技术笔记每周3篇

    Blink若干

    学习日记

    第二周:周一

    一、面向对象OOP

    1、三大特性

    • (1)封装:把相关的数据封装成为一个“类”组件
    • (2)继承:子类自动共享父类的属性和方法,这是类之间的一种关系
    • (3)多态:增强软件的灵活性和重用性

    2、生活中的描述

    属性–实物的信息(名词)

    行为–实物能做什么(动词)

    Java中的描述

    成员变量–事物的属性

    成员方法–事物的行为

    类:

    定义:对生活中一类具有共同属性和行为的事物的抽象。

    2.组成:

    属性:事物的特征,通过成员变量来实现。比如:小狗的年龄,姓名,体重
    成员变量:在类当中,方法外边;
    行为:事物的动作。通过成员方法来实现。比如:小狗:sleep();eat();
    成员方法:和之前定义的方法一样,但是要去掉static;
    public void getSum(){};

    类:是事物的统称,是对象的模板,类是一种虚拟的概念,看不见,摸不着,java语言最基本的单位就是类,类似于类型。类是一类事物的抽象,可以理解为模板

    对象:

    对象:对象是这个世界上实实在在存在的个体,你看到的任何一个东西都是一个对象,每个对象都具有三个特点:对象的状态(描述对象的基本特征),对象的行为(描述对象的功能),对象的标识(是指对象在内存中都有一个唯一的地址值用来和其他对象区分开来)

    类和对象的关系

    		类相当于模板,对象是一个具体的事物。比如:类:模子;对象:一块月饼。
    
    • 1

    类的使用:通过创建对象来使用

    		1.对象的创建:类名 对象名=new 类名称();  Dog tom=new Dog();
    		2.成员变量的访问:对象名.变量名;  tom.age;tom.weight;
    		3.成员方法的访问:对象名.方法名;  tom.sleep();tom.eat();tom.getSum();
    
    • 1
    • 2
    • 3

    对象的内存结构

    	1.创建对象时候,真实的对象在堆内存中,栈内存中对象里存储的是地址值。 Student stu=new Student();
    	2.堆内存中,真实的对象里的方法其实是地址值,映射到方法区里字节码文件里的真实的方法,把这个方法加载进栈内存。stu.study();
    
    • 1
    • 2

    成员变量和局部变量

    	区别:
    		1.位置不同:
    			1.成员变量:在类当中,方法外边
    			2.局部变量:在方法里边。
    		2.内存中存储不同:
    			1.成员变量:跟着对象走的,在堆内存中。
    			2.局部变量:跟着方法走的,在栈内中。
    		3.生命周期不同:
    			1.成员变量:跟着对象走的,当对象被gc回收机制销毁的时候,成员变量跟着销毁了。
    			2.局部变量:跟着方法走的,当方法出栈,局部变量跟着销毁。
    		4.初始化不同
    			1.成员变量:在使用的时候如果没有初始值,系统默认给它初始值。
    			2.局部变量:在使用的时候,必须初始化。不然程序报错。
    		5.权限修饰符不同:
    			1.成员变量:可以定义成员变量时,指定权限,使用修饰符:public、default、protected、private
    			2.局部变量:只能被default 和final修饰。
    			注意:final修饰的时候:
    				1.成员变量:final修饰成员变量,该变量必须在创建对象之前进行赋值,否则编译失败。
    							1)创建成员变量的时候手动赋值
    							2)利用构造器进行赋值
    							3)利用set方法进行赋值(不行,因为是通过对象去调用的。)
    				2.局部变量:变量是基本类型:数据值不能发生改变
             				      变量是引用类型:地址里面的内容可以发生改变,但是地址是不能改变的
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    private关键字:

    	1.概念:是一个修饰符,私有的。
    	2.使用:修饰成员(成员变量,成员方法)。
    	3.特点:被它修饰的成员,只能在本类中直接方法。在外部访问,只能通过它提供的Get和Set方法去访问。
    			间接的保护了被修饰的成员变量和成员方法。
    
    • 1
    • 2
    • 3
    • 4

    this关键字:

    	1.概念:代表当前对象,被它修饰的变量就是成员变量。
    	2.作用:主要作用就是为了区分成员变量和局部变量;
    	3.用法:
    		3.1)this.成员变量名----------访问成员变量
    		3.2)this.方法名()--------------调用方法(一般不用)
    		3.3)this()------------调用构造方法(一般不用)
    		就近原则:
    	1.当成员变量和局部变量重名的时候,作用域里优先考虑理它最近的变量。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    封装思想

    	1.是Java三大特性之一。(封装、继承、多态)
    	2.将某些信息隐藏到类的内部,不允许外界直接访问,只能通过该类提供的方法来对隐藏信息的访问。
    				 private实现的隐藏,					Get()和Set()方法
    	3.好处:
    		1.把代码进行封装,提高代码复用性。
    		2.通过隐藏信息,提高代码安全性。
    	4.例子:方法就算一种封装,封装了一个独立功能的代码块。
    		        类也算一种封装,封装了属性和行为。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    构造方法:

    	1.概念:用来创建对象的方法。
    	2.格式:public 类名称(){}  //当前类里:public static void get(){}   模板类:(成员方法)public void get(){}
    	
    	3.使用:就是在创建对象的时候,通过调用构造方法来实现创建对象。new Student();
    	4.分类:
    		1.无参构造:没有参数
    		2.有参构造:有参数
    		
    	5.注意事项:
    		1.方法名和类名相同
    		2.没有返回值类型,也没有void.
    		3.没有返回值
    		4.如果一个类里没有构造方法,java会默认提供一个无参构造。
    					  有构造方法,    java将不在提供。
    		5.在创建对象时候,被自动调用。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    JAVABean类:标准的模板类,用来封装数据;

    	包含:
    		1.私有属性
    		2.构造方法
    		3.Get()和Set()方法。
    		4.toString()方法
    
    • 1
    • 2
    • 3
    • 4
    • 5

    继承

    继承:面向对象的一个特性,从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并扩展新的功能

    • 1、特点:代码复用,使用关键字extends来表示继承关系
    • 2、继承具有传递性,爷爷的功能会传给爸爸,爸爸的功能会传递给儿子
    • 3、子类(派生类)继承父类(超类)之后,相当于把父类的功能进行复制
    • 4、Java只支持单继承,一个父类可以有多个子类,但是一个子类只能有一个父类
    • 5、继承是is a的关系,要求子类必须是父类的一种继承结构,依赖性非常强,强耦合
  • 相关阅读:
    Linux命令-which whereis find的区别
    HTML5基础知识
    AWS — 公有云网络模型
    RabbitMQ保证消息的可靠性
    nRF24L01芯片驱动记录
    计算机组成原理学习笔记:主机三件套硬件部件
    java-net-php-python-java幼儿早教管理系统查重PPT计算机毕业设计程序
    接口
    Stream 的使用,我觉得使用它是非常方便的
    动手学深度学习(Pytorch版)代码实践 -计算机视觉-38实战Kaggle比赛:图像分类 (CIFAR-10)
  • 原文地址:https://blog.csdn.net/m0_68089732/article/details/126237059