尚学堂 JAVA DAY12 概念总结
面向过程和面向对象的区别。(5 分)
面向过程就好像:一位父亲吩咐自己8岁的小儿子去买啤酒。
他需要考虑儿子从出门后的每一个步骤,叮嘱儿子出门怎么走,如何过马路,到了超市如何找到酒水区,怎么识别需要的品牌,最后去哪里找收银员付账,付账时要注意找零不要出错,回来时过马路要等红绿灯等等各种细节都需要一一考虑到;
面向对象就像:还是这位父亲10年后吩咐18岁的儿子再去买啤酒。
这一次,他只说了一句,儿子今晚我们喝青岛啤酒,去买点儿回来。18岁的儿子10分钟不到就买回来了啤酒。
因此可以认为:面向过程是以一种过程的思维处理问题;面向对象着眼于宏观面,只关注问题的结果,而不再需要处理问题面下的微观细节。但是二者又是相辅相成紧密联系,面向对象是建立在面向过程的基础上,如同一个人由未成年时买啤酒的踽踽独行,到走向成年后买啤酒的游刃有余,面向对象是由面向过程逐渐演变发展而来的。同时,现在很多面向对象的问题在处理细节时,仍然需要采用面向过程的方式。
2.类和对象的关系
类和对象就在生活中随处可见。
如:人 是一个类,而美国总统欧巴马是 人 这个类的一个对象;美国著名演员布拉德皮特也是 人 这个类的一个对象;历史上的巨人 牛顿 也是 人 这个类的一个具体对象;人类历史长河中每一个具名的人都是 人 这个类的具体对象。
而 人 这个类是对这些所有具体对象的共同特征的一个抽象,有共同的静态属性如:肤色、国籍、年龄、直立行走的动物、情商、智商等等;还有一些共同的动态属性:说话、学习、唱歌、跳舞等等。
即:类是对一些具有共同特征的具象实物的抽象概括;
对象则这个类下的一个个具体的实物。
3. 构造方法的作用和特征
构造方法的作用:给对象赋初始值;
特征:
1)和类名完全一致;
2)构造方法不能写返回值;
3)当类中没有显示提供无参构造方法时,系统将默认提供一个无参的构造方法;
4)当有重载的构造方法时,系统将不再提供无参数的构造方法,创建对象时,如果用到了无参数的构造方法,则需要程序员在该类中显式的提供一个无参的构造方法;
5)一个类中至少有 1 个构造方法。
4.this 关键字的作用和用法
1)this关键字的作用:
当成员变量与局部变量重名时,需要用this关键字来确定成员变量。
2)this关键字的用法:
成员变量前加this,表示当前对象的成员变量。
在类中调用成员方法时,this可以省略;当方法中不存在与成员变量同名的局部变量时,成员变量前的this也可以省略。
使用this调用构造方法时,该语句只能是第一条语句;
而且只能通过this调用构造方法一次。
5. 简述 static 关键字的作用。
Static 关键字可以用来修饰成员变量、方法、代码块、内部类以及import 包。
1.static变量
1)static变量只能是成员变量
2)static变量是所有对象共同拥有的一个变量,在类第一次被加载时创建,且只创建一次。
3)static变量被分配在方法区的一块内存中
4)static变量可以被非static方法访问,访问方式:类名.变量名或者对象名.变量名。
2.static方法
1)static方法的作用是访问并操作静态成员,包括静态方法和静态变量
2)static方法的访问方式:类名.方法名() 或者 对象名.方法名()
3)在static方法中,不可以使用this关键字,也不可以访问非静态的成员,包括非静态的成员变量和非静态的方法,原因是:在static方法访问非静态的成员时,其有可能在内存中尚未被分配空间,即非静态成员在创建时间上晚于静态成员。
4)在非静态的方法中,可以访问静态的成员,包括静态成员变量和静态方法,原因是:静态的成员在创建时间上要早于非静态成员。
3.static代码块
1)静态代码块可以有1个或者多个;
2)静态代码块会在类第一次被加载时被执行,且只执行一次,执行顺序是自上而下依次顺序进行,若其被定义在构造方法之前,那么它也会在构造方法之前执行;
4)在静态代码块中可以访问当前类中所有的成员;
5)语法作用是 给静态变量赋初始值,调用静态方法;
4.static import语句
由static修饰import语句时,导入的是某个类中的所有静态成员变量和静态方法;
5.static修饰内部类,还没学,后续补充。
尚学堂 JAVA DAY12 概念总结的更多相关文章
- 尚学堂 JAVA DAY11 概念总结
1.冒泡排序算法 <升序排列> 思路1: 数组长度为n,那么要对数组进行n-1次遍历; step 1---从数组的第一个数开始,两两比较,如果第一个数 > 第二个数,将二者进行交换: ...
- 尚学堂 JAVA Day3 概念总结
java中的运算符 1.算术运算符 + - * / % Arithmetic operators + 运算符有三种身份 Additive Operator 1)加法:如 a + b; 2)连接:如 “ ...
- 尚学堂 JAVA Day1 概念总结
1.什么是计算机语言?一些符号,这些符号按照计算机硬件结构可以理解的方式排列组合,方便人与计算机,计算机与计算机之间进行信息的交换. 2.什么是机器语言?就是简单的二进制0和1的组合.该语言是计算机硬 ...
- 尚学堂 JAVA DAY12 java程序执行时内存的分配
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- 尚学堂Java第一课
今天是北京尚学堂郑州分校开课的第一天,小班面授教学. 我很兴奋,是一个小白对IT大神渴求传道授业解惑的兴奋. 杨老师还是一贯耐心详细的手敲了第一堂课的完整大纲,必须给杨老师赞赞赞!!! 从幽默的制定班 ...
- 尚学堂Java面试题整理
博客分类: 经典分享 1. super()与this()的差别? - 6 - 2. 作用域public,protected,private,以及不写时的差别? - 6 - 3. 编程输出例如以 ...
- 尚学堂java答案解析 第一章
本答案为本人个人编辑,仅供参考,如果读者发现,请私信本人或在下方评论,提醒本人修改 一.选择题: 1.C 解析:java为了安全,中并没有引入C语言的指针概念. 2.AD 解析:B:Java先通过ja ...
- 尚学堂 JAVA Day13 abstract 关键字
Abstract (抽象的) 这是一个关键字. 可以且只可以 用来修饰 <类> <方法>. 1---Abstract 类 如:Animal,可以被理解一个抽象的类.动物嘛,只是 ...
随机推荐
- Activity Threa创建Window和View分析
http://blog.csdn.net/ljsbuct/article/details/7094580 1. 入口. 以前一直都说Activity的人口是onCreate方法.其实android上一 ...
- Wireshark提示没有一个可以抓包的接口
这是由于win下默认NPF服务是关闭的,需要以管理员的身份开启这个服务 Windows上安装wireshark时,会遇到NPF驱动无法启动的情况,一般如果采用管理员的方式就可以正常启动,或者是将NPF ...
- [总结]FFMPEG视音频编解码零基础学习方法
在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的“大神”,有的是刚开始学习的初学者.在和大家探讨的过程中,我忽然发现了一个问题:在“ ...
- 段落排版--行间距, 行高(line-height)
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- SGU 220.Little Bishops(DP)
题意: 给一个n*n(n<=10)的棋盘,放上k个主教(斜走),求能放置的种类总数. Solution: 一眼看上去感觉是状压DP,发现状态太多,没办法存下来... 下面是一个十分巧妙的处理: ...
- 【POJ3468】【zkw线段树】A Simple Problem with Integers
Description You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. On ...
- 性能测试实践-linux
需求:线上系统性能优化,查找服务器和线上系统瓶颈 根据线上经验数据及期望值定量 数据 up down 线上数据 50 500 测试数据 100 500~2000+ 测试数据 200 500~200 ...
- js控制 点一下增加一个输入框,点一下增加一个输入框……
<div> <div> 附件1:<input type="file" id="file1" name="file1&qu ...
- glide简介
golang包管理工具glide简介 golang包管理工具glide简介 前言 golang是一个十分有趣,简洁而有力的开发语言,用来开发并发/并行程序是一件很愉快的事情.在这里我感受到了其中一 ...
- Apache虚拟站点配置
简单虚拟站点配置: <VirtualHost 127.0.0.2:80> DocumentRoot E:/wamp/www/yue ServerName 127.0.0.2:80</ ...