oop_day02_类、重载_20150810
oop_day02_类、重载_20150810
1.怎样创建类?怎样创建对象?
2.引用类型之间画等号: 家门钥匙
1)指向同一个对象(数据有一份)
2)对当中一个引用的改动。会影响另外一个引用
基本类型之间画等号: 身份征复印件
1)赋值(数据有两份)
2)对当中一个值的改动,不会影响另外一个值
内存图:
基本类型和引用类型在内存中存储
基本类型画等号
引用类型画等号
3.null:
1)空,即:不再指向不论什么对象
2)若引用的值为null。则不能再进行不论什么操作了
若操作则NullPointerException(空指针异常)
内存图:
Null和NullPointerException
演示样例代码:
package oo.day02;
public class Demo {
public static void main(String[] args) {
/*
Cell c = new Cell();
Cell cc = c; //指向同一个对象
cc.row = 5;
c.row = 8;
System.out.println(cc.row); //8
int num = 8;
int num2 = num; //赋值
num2 = 88;
System.out.println(num); //8
*/
/*
Cell c = new Cell();
c.row = 2;
System.out.println(c.row);
c = null; //空,不再指向不论什么对象
System.out.println(c.row); //空指针异常(NullPointerException)
*/
}
}
4.方法签名=方法名+參数列表
5.方法的重载(overload):
1)一个类中,方法名称同样,參数列表不同,称方法的重载
2)编译器在编译时,自己主动依据方法的签名绑定调用不同的方法
演示样例代码:
package oo.day02;
/*
* 1.一个文件里能够包括多个类
* 2.public修饰的类仅仅能有一个
* 3.public修饰的类必须与文件名称同样
*/
//重载的演示
public class OverloadDemo {
public static void main(String[] args) {
Aoo o = new Aoo();
o.say();
o.say("zhangsan");
o.say(23);
o.say("zhangsan", 23);
o.say(23, "zhangsan");
}
} class Aoo{
void say(){}
void say(String name){}
void say(int age){}
void say(String name,int age){}
void say(int age,String name){} //int say(){ return 5;} //编译错误。与返回值类型无关
//void say(String address){} //编译错误,与參数名无关
}
6.构造方法:
1)给成员变量赋初值
2)与类同名,没有返回值类型
3)在创建(new)对象时被自己主动调用
4)若自己不写构造,则系统默认提供一个无參构造
若自己写构造,则不再默认提供
5)构造方法能够重载
7.thiskeyword:
1)指代当前对象,哪个对象调指的就是哪个对象
方法中訪问成员变量。默认有个this.
2)使用方法:
2.1)this.成员变量名---------訪问成员变量
2.2)this.方法名()-------------调用方法(差点儿不用)
2.3)this()-----------------------调用构造方法
--------------------------------------------------------------------------------------------------------
总结:
方法的重载与方法名和參数列表有关。构造方法的重载也是一样。
一个文件里能够包括多个类、public修饰的类仅仅能有一个、public修饰的类必须与文件名称同样
this指代当前对象,哪个对象调指的就是哪个对象
oop_day02_类、重载_20150810的更多相关文章
- ostream类重载的operator<<()函数
ostream类重载了operator<<()以识别不同的类型,如: int short long unsigned int unsigned short unsigned long f ...
- C++重载运算符练习--对people类重载“= =”运算符和“=”运算符
题目描述 对people类重载“= =”运算符和“=”运算符,“==”运算符判断两个people类对象的id属性是否相等:“=”运算符实现people类对象的赋值操作. 代码如下 #include&l ...
- YTU 2443: C++习题 复数类--重载运算符3+
2443: C++习题 复数类--重载运算符3+ 时间限制: 1 Sec 内存限制: 128 MB 提交: 1368 解决: 733 题目描述 请编写程序,处理一个复数与一个double数相加的运 ...
- YTU 2441: C++习题 复数类--重载运算符2+
2441: C++习题 复数类--重载运算符2+ 时间限制: 1 Sec 内存限制: 128 MB 提交: 847 解决: 618 题目描述 定义一个复数类Complex,重载运算符"+ ...
- YTU 2440: C++习题 复数类--重载运算符+,-,*,/
2440: C++习题 复数类--重载运算符+,-,*,/ 时间限制: 1 Sec 内存限制: 128 MB 提交: 1189 解决: 774 题目描述 定义一个复数类Complex,重载运算符& ...
- YTU 2439: C++习题 复数类--重载运算符+
2439: C++习题 复数类--重载运算符+ 时间限制: 1 Sec 内存限制: 128 MB 提交: 1022 解决: 669 题目描述 定义一个复数类Complex,重载运算符"+ ...
- YTU 2907: 类重载实现矩阵加法
2907: 类重载实现矩阵加法 时间限制: 1 Sec 内存限制: 128 MB 提交: 345 解决: 164 题目描述 编写矩阵类Matrix,实现两个2x3矩阵相加.主函数已给定. 输入 两 ...
- 模板类重载<<运算符
写了一个Matrix模板类,需要重载<<, 1.需要友元函数 2.需要此函数的实现在.h中(本人试验出来的,放在.cpp中编译不通过) template <typename T> ...
- java使用this关键字调用本类重载构造器
在构造器中可以调用本类的其他重载构造器,不能使用构造器名称来调用另一个构造器,而是应该使用Java特定的this(-.)来调用. this(-.)方法必须出现在构造器中的第一行,用来调用其他重载构造器 ...
随机推荐
- Unity通过指定摄像机截屏
简介 介于照抄网上之前的截图教程,然后在实际应用过程中出现了一些小小的问题,修正了一下下,特此分享一下 PS:代码在后面 原理 原理很简单,就是将一个相机的内容渲染到一个贴图上,然后将贴图保存为图片 ...
- c# winform控件dock属性停造位置、摆放顺序详解
dock : [英文释义- 码头.依靠][winform释义- 获取或设置当前控件依靠到父容器的哪一个边缘.] 用途:多数控件都有这个属性,主要用来设置控件的布局. 但对于不太了解这个属性的朋友来说有 ...
- Laravel 5.4.36 session 生效问题
在测试过程中发现 如果方法有echo 等函数输出到PHP的输出缓存中 存在 sessionID 不会放到http的请求头中 下次请求也就拿不到sessionid问题 问题的原因 代码位置:publ ...
- webstorm中配置过visualsvn,后面做更改要更换authentication realm的解决办法
找这个找了好久,一直改不过来,终于找到了解决办法 首先,在提交代码时提示: 但是我的authentication realm已经时这个了,并且账号和密码也改了,所以要更改authentication ...
- Android Studio查看CPU使用率。
进入AS自带的CMD,依次输入: (1)进入Android Atudio安卓的目录: 1.H: 2.cd AndroidStudio\sdk\platform-tools (2)adb shell ( ...
- html——特例
1.a标签与a标签之间有3px距离 2.标准流中的文字不会被浮动的盒子遮挡 <div style="width:150px;height:150px;background-color: ...
- ARX中类型强制转换
比如 克隆 clone, 获得的是一个acrxobject, acrxobject *pobj=pployline->clone(); acdbpolyline *ppoly=acdbpolyl ...
- vim三种模式
一般模式 以vi打开一个文件就直接进入一般模式了.一般模式下可以移动光标查看内容,通过ESC回到一般模式. 一般模式下常用的操作: 撤销与重做 命令 说明 u 复原上一个操作 . 小数点 重复上一个操 ...
- openstack——nova计算服务
一.nova介绍 Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源.OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就是 ...
- 如何区分null和undefined
null和undefined是两种数据类型, 如果硬要区分的话. null是一种类型, 赋值变量为null型. 未定义的变量, 即为undefined. var a = null a // null ...