活动地址:CSDN21天学习挑战赛
学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…
…
学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…
…
个人名片:
作者简介:一名大一在校生
❄️个人主页:小新爱学习.
个人WeChat:hmmwx53
️系列专栏:零基础学java ----- 重识c语言
每日一句:人生没有一劳永逸,想不被抛弃,只有自己努力
文章目录活动地址:CSDN21天学习挑战赛
- 创作计划
- 学习计划
- 学习日记
- 第二周:周一
- 一、面向对象OOP
- 类:
- 对象:
- 类和对象的关系
- 类的使用:通过创建对象来使用
- 对象的内存结构
- 成员变量和局部变量
- private关键字:
- this关键字:
- 封装思想
- 构造方法:
- JAVABean类:标准的模板类,用来封装数据;
- 继承
学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…
…
欢迎参与CSDN学习挑战赛,成为更好的自己,请参考活动中各位优质专栏博主的免费高质量专栏资源(这部分优质资源是活动限时免费开放喔~),按照自身的学习领域和学习进度学习并记录自己的学习过程。您可以从以下3个方面任选其一着手(不强制),或者按照自己的理解发布专栏学习作品,参考如下:
**
创作计划**
1,机缘
我是一名普二学生,由于疫情原因大一下班学期也是没有开学,不甘堕落于是在互联网这片汪洋大海中,摸寻着前进的方向,也是偶然的机会接触到了CSDN,在这里有一群志同道合的朋友一起努力,于是自己也加入了进了,一篇两篇,也收获了很多的粉丝,推动着我前进…
2,收获
在CSDN这个大家庭里,每天都过得很充实,尤其是有不错的粉丝量,文章上了热榜,都会让我高兴半天,也结识了很多优质博主,像凉哥,哪吒…
3,日常
创作已经成为记录生活的一部分了,这里有我成长的点滴…
4,憧憬
有朝一日我也能成为优质博主,有自己的铁粉团队…
**
学习计划**
1,学习目标
这21天我们可以分为3周,每周更新三篇
2,学习内容
- 第二周:周一
- 面向对象,
- 包括面向对象三大特征,
- 关键字private,this
第二周:周三 - static关键字
- 权限修饰符,
- 常量,
- 枚举
第二周: 周六 - 抽象类,接口
- 内部类等概念!
3,学习时间
每周一,周三,周六
4,学习产出:
技术笔记每周3篇
Blink若干
学习日记 第二周:周一 一、面向对象OOP1、三大特性
- (1)封装:把相关的数据封装成为一个“类”组件
- (2)继承:子类自动共享父类的属性和方法,这是类之间的一种关系
- (3)多态:增强软件的灵活性和重用性
2、生活中的描述
属性–实物的信息(名词)
行为–实物能做什么(动词)
Java中的描述
成员变量–事物的属性
成员方法–事物的行为
类:定义:对生活中一类具有共同属性和行为的事物的抽象。
2.组成:
属性:事物的特征,通过成员变量来实现。比如:小狗的年龄,姓名,体重
成员变量:在类当中,方法外边;
行为:事物的动作。通过成员方法来实现。比如:小狗:sleep();eat();
成员方法:和之前定义的方法一样,但是要去掉static;
public void getSum(){};
对象:类:是事物的统称,是对象的模板,类是一种虚拟的概念,看不见,摸不着,java语言最基本的单位就是类,类似于类型。类是一类事物的抽象,可以理解为模板
类和对象的关系对象:对象是这个世界上实实在在存在的个体,你看到的任何一个东西都是一个对象,每个对象都具有三个特点:对象的状态(描述对象的基本特征),对象的行为(描述对象的功能),对象的标识(是指对象在内存中都有一个唯一的地址值用来和其他对象区分开来)
类相当于模板,对象是一个具体的事物。比如:类:模子;对象:一块月饼。类的使用:通过创建对象来使用
1.对象的创建:类名 对象名=new 类名称(); Dog tom=new Dog(); 2.成员变量的访问:对象名.变量名; tom.age;tom.weight; 3.成员方法的访问:对象名.方法名; tom.sleep();tom.eat();tom.getSum();对象的内存结构
1.创建对象时候,真实的对象在堆内存中,栈内存中对象里存储的是地址值。 Student stu=new Student(); 2.堆内存中,真实的对象里的方法其实是地址值,映射到方法区里字节码文件里的真实的方法,把这个方法加载进栈内存。stu.study();成员变量和局部变量
区别: 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.局部变量:变量是基本类型:数据值不能发生改变 变量是引用类型:地址里面的内容可以发生改变,但是地址是不能改变的private关键字:
1.概念:是一个修饰符,私有的。 2.使用:修饰成员(成员变量,成员方法)。 3.特点:被它修饰的成员,只能在本类中直接方法。在外部访问,只能通过它提供的Get和Set方法去访问。 间接的保护了被修饰的成员变量和成员方法。this关键字:
1.概念:代表当前对象,被它修饰的变量就是成员变量。 2.作用:主要作用就是为了区分成员变量和局部变量; 3.用法: 3.1)this.成员变量名----------访问成员变量 3.2)this.方法名()--------------调用方法(一般不用) 3.3)this()------------调用构造方法(一般不用) 就近原则: 1.当成员变量和局部变量重名的时候,作用域里优先考虑理它最近的变量。封装思想
1.是Java三大特性之一。(封装、继承、多态) 2.将某些信息隐藏到类的内部,不允许外界直接访问,只能通过该类提供的方法来对隐藏信息的访问。 private实现的隐藏, Get()和Set()方法 3.好处: 1.把代码进行封装,提高代码复用性。 2.通过隐藏信息,提高代码安全性。 4.例子:方法就算一种封装,封装了一个独立功能的代码块。 类也算一种封装,封装了属性和行为。构造方法:
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.在创建对象时候,被自动调用。JAVABean类:标准的模板类,用来封装数据;
包含: 1.私有属性 2.构造方法 3.Get()和Set()方法。 4.toString()方法继承
继承:面向对象的一个特性,从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并扩展新的功能
- 1、特点:代码复用,使用关键字extends来表示继承关系
- 2、继承具有传递性,爷爷的功能会传给爸爸,爸爸的功能会传递给儿子
- 3、子类(派生类)继承父类(超类)之后,相当于把父类的功能进行复制
- 4、Java只支持单继承,一个父类可以有多个子类,但是一个子类只能有一个父类
- 5、继承是is a的关系,要求子类必须是父类的一种继承结构,依赖性非常强,强耦合