Java学习之==>面向对象编程 Part1
一、面向对象与面向过程
1、面向过程
- 角度是功能,以方法为最小单位,思考的是具体怎么做。
2、面向对象
- 角度是抽象,以类为最小单位,思考的是谁来做。
3、示例:“小明去上班”
- 面向过程
- 起床,刷牙洗脸,出门,打车,上车,出发,上班;
- 面向对象
- 小明: 起床,刷牙洗脸,出门,打车,付钱,上班;
- 司机: 开车,收钱
- 车: 跑
二、类和对象
1、概述
- 类
- 属性,方法,构造器,代码块;
- 类属性,静态方法,静态代码块;
- 内部类,匿名内部类;
- 对象/实例
- 类(模板,图纸,规范) -> 对象(实实在在的”生物”);
- Class -> new -> Instance;
- 特性
- 封装,继承,多态;
- 语法
- 关键字: this, super, class, final, static, private, public, protected, abstract, interface, package;
- 初始化流程: .java -> .class-> 类 -> 对象 -> 运行
2、内存示意图

3、成员变量&局部变量
- 相同点
- 都是变量,定义语法一致
- 不同点
- 作用域不同;
- 存储位置不同;
- 编写位置不同;
- 注意
- 就近原则;
4、方法
- 返回值
- 无返回值(void);
- 有返回值(Object);
- 形参
- 值传递(基本数据类型);
- 引用传递(引用数据类型);
- 备注
- 权限修饰符与封装一起;

5、构造器
- 本质
- 实例化一个类时所使用的特殊”方法”;
- 任何一个类都有一个默认的构造器
- 作用
- 丰富实例化时的数据传入;
- 注意
- 构造器可以有多个即重载;
- 显示定义一个构造器,默认的就会被覆盖;
6、this关键字
- 本质
- 指向当前对象的指针;
- 理解
- 编写的代码所在的位置是类,而对象是基于类的产物,是后期产生的;
- 当在编写一些属性或方法时,还并不知道对象是谁,因此使用一个”指针”(编写代码时还不确定是谁)来占位;
- this就代表当前创建的对象;
三、类和对象总结
- 概述
- 同一个类创建的不同对象本质上是两个独立的;
- 我们编写的class其实是一个模板,它不干活;
- 真正干活的是new出来之后的那个对象;
- 区别
- 本质: 编写的是类, 运行的是对象;
- 存储位置: 类存储在方法区,对象存储在堆中;
- 注意
- 类本身也是对象Class;
Java学习之==>面向对象编程 Part1的更多相关文章
- Java学习之==>面向对象编程 Part2
一.封装 封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结 ...
- JAVA学习:面向对象编程
"算法+数据结构=程序"是一句经典名言,这句话很直接的说明了程序的本质:处理数据.产生结果.即便是最简单的HelloWorld程序,我们也可以将字符串"HelloWorl ...
- Java学习day7面向对象编程1-对象和类
一.Java编程中对象和类的概念 1,什么是类? 答:类是客观存在的,抽象的,概念的东西. 2,什么是对象? 答:对象是具体的,实际的,代表一个事物.例如:车是一个类,汽车,自行车就是他的对象. 关于 ...
- Java学习_面向对象编程
抽象类 一个class定义了方法,但没有具体执行代码,这个方法就是抽象方法,抽象方法用abstract修饰.因为抽象类本身被设计成只能用于被继承,因此,抽象类可以强迫子类实现其定义的抽象方法,否则编译 ...
- Java学习day9面向对象编程2-方法的可变个数的参数和方法的参数传递
一.方法的可变个数的参数. 问题:我们能够打印的信息都是来源于方法的参数,也就是形参的传递.那如何要给方法传递不同的参数? .1.采用数组形参来定义方法 public static void test ...
- Java学习day8面向对象编程2-类的属性和方法
一.类的属性 1.语法格式 修饰符 类型 属性名 = 初值 说明:修饰符private:该属性只能由该类的方法使用.在同一类内可见.使用对象:变量.方法. 注意:不能修饰类(外部类) 修饰符pu ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
- Java基础-初识面向对象编程(Object-Oriented-Programming)
Java基础-初识面向对象编程(Object-Oriented-Programming) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java是一门面向对象的程序设计语言.那么什 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
随机推荐
- python-1.Centos7安装Python3.6和Scrapy的方法
由于centos7原本就安装了Python2,而且这个Python2不能被删除,因为有很多系统命令,比如yum都要用到 [root@iZm5efjrz9szlsq1a0ai3gZ ~]# python ...
- js判断网页标题包含某字符串则替换
js判断网页标题包含某字符串则替换,代码如下: var tit=document.title; if(tit.indexOf("afish")>0){ tit=tit.rep ...
- uestc summer training #9 牛客第三场 BFS计数
G.coloring tree BFS计数 题目:给你n(<=5000)个节点的一颗树 你有K(<=5000)种颜色 你可以给每一个节点染一种颜色 总共有Kn种染色方法 在一种染色方法中 ...
- 使用cordova调用相机在相机中添加蒙版
变态的需求,要在cordova调起得相机上加入一拍照的轮廓,在cordova的插件中拿不到拍照的方法,起初选用UIImagePickerController的cameraOverlayView属行,结 ...
- exec模块,元类与ORV的应用
exec模块的补充 1.是什么? exec是一个Python内置模块. 2.exec的作用: ''' x = 10 def func1(): pass ''' 可以把"字符串形式" ...
- 本地安装sass出错问题解析
2016年3月23日个人博客文章--迁移到segmentfault 安装sass ruby安装因为sass依赖于ruby环境,所以装sass之前先确认装了ruby.先导官网下载个ruby 在安装的时候 ...
- Zookeeper服务注册与发现原理浅析
了解Zookeeper的我们都知道,Zookeeper是一种分布式协调服务,在分布式应用中,主要用来实现分布式服务的注册与发现以及分布式锁,本文我们简单介绍一下Zookeeper是如何实现服务的注册与 ...
- 绑定与非绑定以及property装饰器_day_21 作业题
1.定义MySQL类 1.对象有id.host.port三个属性 2.定义工具create_id,在实例化时为每个对象随机生成id,保证id唯一 3.提供两种实例化方式,方式一:用户传入host和po ...
- github上创建项目
1.github登陆之后,创建仓库 2.填写项目基本信息 3.就这么简单创建好啦 4.此时点击这里就可以克隆地址了
- [Linux系统] (8)Nginx
一.高并发基础架构 简要流程: 1.客户端发请求. 2.又LVS等四层负载均衡系统将请求转发给不同的Nginx服务器. 3.Nginx与客户端建立TCP连接,拿到请求后分析URI,然后将其转发给对应的 ...