面向对象
-
面向对象是相对于面向过程来讲的,指的是把 相关的数据和方法组织为一个整体
-
面向对象到面向过程, 是程序员思想上 从执行者到指挥者的转变
-
三大特征
封装性:所有的内容对外部不可见
继承性:将其他的功能继承下来继续发展
多态性:方法的重载本身就是一个多态性的体现
知识点
类与对象
-
类必须通过对象才可以使用,对象的所有操作都在类中定义。(图纸与实物,模板与成品关系)
类由属性和方法组成:
· 属性:就相当于人的一个个的特征
· 方法:就相当于人的一个个的行为,例如:说话、吃饭、唱歌、睡觉 -
格式
类格式
class 类名称{ 成员变量 成员方法 }
方法格式
返回值 方法名称(形式参数列表){ 方法体 return 返回值; }
return表示结束,可以在无返回值void内用来提前结束,后面代码不会执行
调用方法格式
对象名.方法名称(实际参数列表)
-
对象创建内存
对象的普通的赋值等于其实是指向同一地方,并未复制 如图中的b1与b2
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wNcuugIf-1590591901088)(C:\Users\17243\AppData\Roaming\Typora\typora-user-images\image-20200527160311770.png)]
-
内存[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2QUt9mZI-1590591901097)(C:\Users\17243\AppData\Roaming\Typora\typora-user-images\image-20200527154713632.png)]
栈
一个线程一个栈
Java栈的区域很小 , 大概2m左右 , 特点是存取的速度特别快
先进先出
堆
存放类的对象
构造方法
构建对象,创造对象的方法
一个类中至少有一个构造方法
与普通方法不同在 1.方法名称与类名完全相同 2.没有返回值类型声明
构造方法与创建对象同时产生
建议不要依赖系统自动生成构造方法,自己定义一个最好
方法的重载
条件1:参数列表顺序不同
条件2:参数列表长度不同
条件3:参数列表类型不同
俩方法名字相同,可以,只要上面三条件有一个成立就允许,这种就叫方法重载, 重载与返回值没关系
构造方法重载
和方法重载格式一样,主要作用还是能在生成类的同时赋值进去,并且赋予不同格式的值
建议: 一个类有一个无参和一个全参的构造方法,使用更灵活
匿名对象
只使用一次的对象
格式: 被赋值 = new 类名().类里面的方法
等价于
对象名=new 类名();
被赋值= 对象名.类里面的方法;
注意不要连续用匿名对象
思维
类都是生成一次的,加了static就会与类挂钩,只生成一次
编程规约 其二
-
类名大写驼峰法,方法名,参数名,成员变量,局部变量都是小写驼峰法
-
大括号没内容{}这样,有内容满足1,左大括号前面不换行,后面必须换行
2,右大括号前面换行,后面else等代码不用换,没有要换
-
左小括号和字符之间不出现空格;同样,右小括号和字符之间也不出现空格;而左大
括号前需要空格反例:if (空格 a == b 空格)
-
if/for/while/switch/do 等保留字与括号之间都必须加空格。
-
任何二目、三目运算符的左右两边都需要加一个空格