学习日志,面向对象第一天(类和对象、封装、this关键字)
来源:互联网 发布:闪字风扇软件下载 编辑:程序博客网 时间:2024/05/21 16:58
第六天
开始学习面向对象,也预示学习要开始头疼了(重点内容)
一,面向对象思想
面向对象学习之前,先了解了一下面向过程,前几天学习用到的思想都属于是面向过程思想,都是在一个main方法里边创建N多个自定义方法,然后再main方法里使用自定义方法,这样的写法代码量小的话没有什么,但是代码量多的话,对于后边对代码的整理和功能的扩展都不太,面向对象更趋近于人的思想,在项目的后期维护上边也会非常方便。
面向过程我们是具体的执行者,面向对象我们可以是指挥者。面向对象思想是从面向过程思想演变而来的。
面向过程:煎饼:买各种材料 --- 和面 --- 起火 --- 放面 --- 放鸡蛋 --- 放葱花抹酱 --- 吃煎饼
面向对象:找到煎饼摊老板 --- 老板来个煎饼 --- 不要煎不要饼 --- 老板把煎饼给你 --- 你吃煎饼
万物皆对象!
面向对象的三个特征:封装、继承和多态
二、类与对象及其使用
面向对象就是讲一些有相同属性的东西封装到一起,封装的东西就是类,人可以算是一个类(人类),而人中的一个个体张三,就是人类的一个对象,一个类中可以有属性和方法,对应的现实中的人类就是人的属性和行为。类中的属性和方法称为成员属性(成员变量)和成员方法。
类是java语言中最基本的单位。类是一组相关属性和行为的集合。
类中的属性和方法可以和现实中的事物一一对应。
属性:名词(变量)
行为:动词(方法)
学生类的代码演示:
对象:类的实例化就是对象,对象的抽象称为类
创建对象:类名 对象名 = new 类名();
可以通过对象调用类中的属性和方法:对象名.成员变量 对象名.成员方法
三:对象的内存图
1. javac编译源码,.class文件加载到内存的方法区
2. main方法进栈,有一个 Student s1 (栈内存)
3. 在堆内存中创建Student的对象s1
4. String name 默认值 null,int age 默认值 0,int number 默认值 0
5. 将s1在堆内存中的地址赋给 Student s1 ,main方法中的s1指向堆内存中的对象
6. 使用Student中的study方法,Student.class 文件加载到方法区
7. study方法进栈,main中的s1把内存地址赋给study方法,方法指向堆内存的对象
8. 方法用完以后,study方法弹栈,main方法弹栈,指向消失,堆内存中的对象被java回收机制自动回收
四、成员变量和局部变量的区别
1. 位置不一样:成员变量在类里方法外,局部变量在方法里和方法的声明上
2. 声明周期不一样:成员变量随着对象创建产生随着对象回收而消失,局部变量随着方法调用产生,方法弹栈而消失
3. 初始化值不一样:成员变量系统会有默认值,局部变量需要自己初始化,如果不初始化会编译错误
byte short int long 默认值 0
float double 默认值 0.0
char 默认值 '\u0000'
boolean 默认值 false
其他引用类型 默认值 null
4. 在内存中的位置不一样:成员变量在堆内存,局部变量在栈内存。
注意:局部变量和成员变量名字相同时,采用就近原则
五:匿名对象:没有名字的对象,只能使用一次,是作为实际参数传递的
六:封装(private)
属性私有化,对外提供set和get方法
属性私有, 可以在类里进行安全验证,提高代码的安全性和健壮性
封装原则:将不需要对外提供的内容隐藏起来,属性隐藏,提供公共方法
被private修饰的成员只能在本类中才能访问
七、this关键字
this关键字目前了解的不是特别清除
方法被哪个对象调用,this就代表那个对象,在set方法上,如果参数和属性名一样,要使用this.
开始学习面向对象,也预示学习要开始头疼了(重点内容)
一,面向对象思想
面向对象学习之前,先了解了一下面向过程,前几天学习用到的思想都属于是面向过程思想,都是在一个main方法里边创建N多个自定义方法,然后再main方法里使用自定义方法,这样的写法代码量小的话没有什么,但是代码量多的话,对于后边对代码的整理和功能的扩展都不太,面向对象更趋近于人的思想,在项目的后期维护上边也会非常方便。
面向过程我们是具体的执行者,面向对象我们可以是指挥者。面向对象思想是从面向过程思想演变而来的。
面向过程:煎饼:买各种材料 --- 和面 --- 起火 --- 放面 --- 放鸡蛋 --- 放葱花抹酱 --- 吃煎饼
面向对象:找到煎饼摊老板 --- 老板来个煎饼 --- 不要煎不要饼 --- 老板把煎饼给你 --- 你吃煎饼
万物皆对象!
面向对象的三个特征:封装、继承和多态
二、类与对象及其使用
面向对象就是讲一些有相同属性的东西封装到一起,封装的东西就是类,人可以算是一个类(人类),而人中的一个个体张三,就是人类的一个对象,一个类中可以有属性和方法,对应的现实中的人类就是人的属性和行为。类中的属性和方法称为成员属性(成员变量)和成员方法。
类是java语言中最基本的单位。类是一组相关属性和行为的集合。
类中的属性和方法可以和现实中的事物一一对应。
属性:名词(变量)
行为:动词(方法)
学生类的代码演示:
对象:类的实例化就是对象,对象的抽象称为类
创建对象:类名 对象名 = new 类名();
可以通过对象调用类中的属性和方法:对象名.成员变量 对象名.成员方法
三:对象的内存图
1. javac编译源码,.class文件加载到内存的方法区
2. main方法进栈,有一个 Student s1 (栈内存)
3. 在堆内存中创建Student的对象s1
4. String name 默认值 null,int age 默认值 0,int number 默认值 0
5. 将s1在堆内存中的地址赋给 Student s1 ,main方法中的s1指向堆内存中的对象
6. 使用Student中的study方法,Student.class 文件加载到方法区
7. study方法进栈,main中的s1把内存地址赋给study方法,方法指向堆内存的对象
8. 方法用完以后,study方法弹栈,main方法弹栈,指向消失,堆内存中的对象被java回收机制自动回收
四、成员变量和局部变量的区别
1. 位置不一样:成员变量在类里方法外,局部变量在方法里和方法的声明上
2. 声明周期不一样:成员变量随着对象创建产生随着对象回收而消失,局部变量随着方法调用产生,方法弹栈而消失
3. 初始化值不一样:成员变量系统会有默认值,局部变量需要自己初始化,如果不初始化会编译错误
byte short int long 默认值 0
float double 默认值 0.0
char 默认值 '\u0000'
boolean 默认值 false
其他引用类型 默认值 null
4. 在内存中的位置不一样:成员变量在堆内存,局部变量在栈内存。
注意:局部变量和成员变量名字相同时,采用就近原则
五:匿名对象:没有名字的对象,只能使用一次,是作为实际参数传递的
六:封装(private)
属性私有化,对外提供set和get方法
属性私有, 可以在类里进行安全验证,提高代码的安全性和健壮性
封装原则:将不需要对外提供的内容隐藏起来,属性隐藏,提供公共方法
被private修饰的成员只能在本类中才能访问
七、this关键字
this关键字目前了解的不是特别清除
方法被哪个对象调用,this就代表那个对象,在set方法上,如果参数和属性名一样,要使用this.
0 0
- 学习日志,面向对象第一天(类和对象、封装、this关键字)
- 黑马程序员——学习日志4面向对象(概念,类与对象,封装,构造函数,this关键字)
- 面向对象成员封装和this关键字
- 黑马程序员—Java面向对象(类和对象、封装、构造方法、this关键字、static关键字)
- 黑马程序员--面向对象之一:面向对象概念、类和对象的关系、封装、构造函数、this关键字、static关键字
- 6.1面向对象(介绍,类与对象,封装,this关键字,构造方法,static关键字)
- Java基础05天 学习笔记_面向对象(概念,封装,匿名对象,this关键字)
- (5)面向对象,封装&this关键字
- OC学习_第一天 面向对象和类
- 黑马程序员——>第五天<面向对象(匿名对象-封装-构造代码块-this关键字)>
- day05面向对象特征,类的变量和方法,封装,构造函数,this关键字
- 面向对象特征,类的变量和方法,封装,构造函数,this关键字
- 面向对象(this关键字)-第11天
- 黑马程序员——java第五天:面向对象(类、对象、变量、封装、构造、this)
- 第五天-面向对象(变量,封装,构造函数,this)
- 面向对象:封装¥构造函数&this关键字&static静态关键字
- 面向对象 this关键字
- 面向对象this关键字
- linux下 jdk1.8安装
- JAVA验证URL是否有效连接的方法
- [LeetCode]008-String to Integer
- 大家快来A水题
- 【C语言提高25】二级指针做输入的第二种内存模型:二维数组
- 学习日志,面向对象第一天(类和对象、封装、this关键字)
- 最大流最小割定理(max flow/min cut theory)
- 开源实时日志分析ELK平台部署
- c#中常用的集合类型及基本用法
- 字典树
- Spring源码阅读3-bean获取-下
- 超详细图文讲解android studio导入第三方类库的方法
- Objective-C 零散知识笔记 by STP
- 人活着系列之寻找最完美的人生