疯狂java学习笔记
面向对象:
从现实世界中客观存在的事物(对象)出发构造软件系统,并在软件系统构造中运用人类的自然思维方式,强调直接以现实世界中的事物为中心来思考,认识问题,并根据这些事务的本质特点,将他们抽象为系统中的类,作为系统的基本单元,这使得软件系统中的组件直接映像到客观世界,并保持客观世界中事物及其相互关系的本来面貌。
类和对象:
类是对一类事物的抽象,是对一类事物共同特征的概括描述,是构造具体实例的模板。
对象是由类构造出来的一个具体的实例,是对类的实例化,具体化,特殊化。
static:
可以用来修饰成员变量,方法,初始化块,用static修饰的成员都是属于类的,如类方法,类变量,类内部类,类初始化块,它们不依赖(属于)与具体的实例。但是调用它们时既可以用类(推荐)也可以用实例(对象),没用static修饰的成员只能用实例来调用。
用static修饰的成员变量称为类变量,随着类的加载而被初始化,一般用来描述此类事物共同的状态,如人眼睛的个数为2,可以定义为类变量static int eyeNum = 2;
用static修饰的方法称为静态方法,静态方法可以在静态方法中调用(推荐),也可以在普通方法中调用;但是普通方法只能在普通方法中调用,不能再静态方法中调用。
引用与对象
用类声明的变量称为引用变量,引用变量类似于C语言中的指针(引用变量存储的就是存储对象的地址),引用变量指向所引用的对象,引用变量存储在栈内存中,所引用的对象存储于堆内存中,在java中数组也是作为对象存在。
this
this出现于类中的两个位置,根据所出现位置的不同,具有不同的作用:
this出现在方法(普通)中,this引用调用此方法的对象,使用形式为this.xxx(…),在使用时this一般省略,类可以调用静态方法,若是静态方法中调用了普通方法(相当于this.xxx(…))此时this无法指向具体的实例而发生错误,这就是静态成员不能访问非静态成员的原因。
this出现在构造器中,this引用该构造器正在初始化的对象,使用形式为this(…)
方法
java中方法里的参数传递方式只有值传递一种;
形参个数可变的方法:在最后一个形参类型的后面增加三点,(如,xxx(int a,String… books))本质就是一个数组类型的形参,因此调用形参个数可变的方法时,可以传入多个参试或一个数组;如果参数类型是一个数组时,调用时只能传入一个数组。
方法重载,重载的条件:方法名相同,调用者相同(同属于一个类),参数列表不同,系统根据参数列表的不同调用对应的方法。(从编译层面设置的)
疯狂java学习笔记的更多相关文章
- 【疯狂Java学习笔记】【理解面向对象】
[学习笔记]1.Java语言是纯粹的面向对象语言,这体现在Java完全支持面向对象的三大基本特征:封装.继承.多态.抽象也是面向对象的重要组成部分,不过它不是面向对象的特征之一,因为所有的编程语言都需 ...
- 【疯狂Java学习笔记】【第一章:Java语言概述】
[学习笔记]1.Java与C#的异同:Java与C#的相同之处有很多,它们均摒弃了C++面向对象的多继承.宏定义.全局变量.全局函数.指针等等难以使用的机制,添加进了成熟的机制,如垃圾回收.接口等等. ...
- 疯狂java学习笔记之面向对象(八) - static和final
一.static: 1.static是一个标识符: - 有static修饰的成员表明该成员是属于类的; - 没有static修饰的成员表明该成员是属于实例/对象的. 2.static修饰的成员(Fie ...
- 疯狂Java学习笔记(84)----------大约 Java 对象序列化,你不知道 5 事
几年前,.当一个软件团队一起用 Java 书面申请.我认识比一般程序猿多知道一点关于 Java 对象序列化的知识所带来的优点. 关于本系列 您认为自己懂 Java 编程?其实,大多数程序猿对于 Jav ...
- 疯狂Java学习笔记(70)-----------挚爱Java
与大家分享! 挚爱Java 10个使用Java最广泛的现实领域 写好Java代码的30条经验总结 Java字符串的substring真的会引起内存泄露么? Java内存的原型及工作原理深度剖析 Jav ...
- 疯狂java学习笔记之面向对象(六) - 构造器重载、方法重载和方法重写
一.方法重载(Overload): Java允许同一个类中定义多个同名方法,只要形参不一样就可以,如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,则被成为方法重载(两同一异). 同 ...
- 疯狂java学习笔记之面向对象(五) - 封装、继承、多态
一.封装: 封装的概念: - 合理的隐藏:隐藏不想被外界操作的Field.方法.构造器 - 合理的暴露:一般就是希望给别人调用的方法 e.g:显示器(按键暴露出来操作,但实际的东西/细节方法被隐藏起来 ...
- 疯狂java学习笔记之面向对象(四) - this关键字
Java中this关键字主要有以下两个方法: 1.this引用 - 可用于任何非static修饰的方法和构造器中,当this用于方法中时,它代表调用该方法的实例/对象;当this用于构造器中时,它代表 ...
- 疯狂java学习笔记之面向对象(三) - 方法所属性和值传递
方法的所属性: 从语法的角度来看:方法必须定义在类中 方法要么属于类本身(static修饰),要么属于实例 -- 到底是属于类还是属于对象? 有无static修饰 调用方法时:必须有主调对象(主语,调 ...
- 疯狂java学习笔记之面向对象(二) - 成员变量与局部变量
Java变量按其作用域可分为:成员变量和局部变量.注意:在Java中是没有全局变量这个概念的 一.成员变量: 成员变量是在类中定义的变量,具体可分为类变量与实例变量--有无static修饰 实例变量的 ...
随机推荐
- 【Linux 运维】linux系统修改主机名
主机名的修改: 1.命名解释: [root@localhost~]# 分别代表: 用户名(root) 主机名(localhost) 当前路径(~,当前用户的home目录) 权限标志位(#代表root ...
- CSS动画@-webkit-keyframes
@-webkit-keyframes:以百分比来规定改变发生的时间,或者通过关键词 "from" 和 "to",等价于 0% 和 100%.0% 是动画的开始时 ...
- 算法模板の数学&数论
1.求逆元 int inv(int a) { ) ; return (MOD - MOD / a) * inv(MOD % a); } 2.线性筛法 bool isPrime[MAXN]; int l ...
- canvas学习(二):渐变与曲线的绘制
canvas学习(二):渐变与曲线的绘制 一:createLinearGradient()线性渐变: 二:createLinearGradient() 放射状/圆形渐变: 三:createPatter ...
- Android蓝牙开发浅谈(转)
http://www.eoeandroid.com/thread-18993-1-1.html 对于一般的软件开发人员来说,蓝牙是很少用到的,尤其是Android的蓝牙开发,国内的例子很少 A ...
- lintcode-141-x的平方根
141-x的平方根 实现 int sqrt(int x) 函数,计算并返回 x 的平方根. 样例 sqrt(3) = 1 sqrt(4) = 2 sqrt(5) = 2 sqrt(10) = 3 挑战 ...
- VM新安装centos7无法连接网络的问题
https://blog.csdn.net/u012110719/article/details/42264601 https://blog.csdn.net/kexiaoling/article/d ...
- Activiti5工作流笔记一
介绍工作流 网上工作流的定义一大堆,这里就不去复制了,通俗的理解,工作流就是类似OA系统中请假审批.报销审批等一系列流程,下级提交的申请只有直系领导才能审批,其他人是没有权限的,而只有直系领导审批通过 ...
- 在上传文件时候 request.setCharset对文件名有效 对普通文本域无效 需要通过手动转换编码方式编码
在上传文件时候 request.setCharset对文件名有效 对普通文本域无效 需要通过手动转换编码方式编码
- hdu3625-Rooms
题目 有\(n\)个房间,\(n\)个钥匙,每个钥匙随机出现在一个房间里,一个房间里有且仅有一个钥匙.我们现在手上没有钥匙,但我们要搜索所有的房间,所以我们有\(k\)次机会把一个房间炸开.一号房间里 ...