Java面向对象的编程
类的多态性:
Java语言中含有方法重载与成员覆盖两种形式的多态:(区别于c++)
方法重载:在一个类中,允许多个方法使用同一个名字,但方法的参数不同,完成的功能也不同。
成员覆盖:子类与父类允许具有相同的变量名称,但数据类型不同,允许具有相同的方法名称,但完成的功能不同。
类:class 对象:object 实例:Instance
创建属于某类的对象,需要通过下面两个步骤来实现:
1、 声明指向"由类所创建的对象"的变量
2、 利用new创建新的对象,并指派给先前所创建的变量。
举例来说,如果要创建Person类的对象,可用下列的语句来实现:
方法一:
Person p ; // 先声明一个Person类的对象p
p = new Person() ; // 用new 关键字实例化Person的对象p
方法二:
Person p = new Person() ; // 声明Person对象p并直接实例化此对象
匿名对象:
“匿名对象”,顾名思义,就是没有明确的声明的对象,也可以简单理解为只使用一次的对象,即没有任何一个具体的对象名词引用它;
System.out.println(new Person().talk() ); //声明了一个匿名对象,调用Person类中的()方法;
用new Person() 声明的对象并没有赋给任何一个Person类对象的引用,所以此对象只使用一次,之后就会被java 的垃圾收集器回收;
对象的比较:
有两种方式可用于对象间的比较,它们是 "=="运算符与equals()方法,
“==” 操作符用于比较两个对象的内存地址值是否相等,
equals( )方法用于比较两个对象的内容是否一致;
下面两种String对象的声明方式到底有什么不同?
String str1 = new String("java");
String str2 = "java";
public class StringDemo
{
public static void main(String args[])
{
String str1 = "java";
String str2 = new String("java");
String str3 = "java"; System.out.println("str1 == str2?" + (str1==str2));
System.out.println("str1 == str3?" + (str1==str3));
System.out.println("str2 == str3?" + (str2==str3));
}
}
str1 == str2?false
str1 == str3?true
str2 == str3?false
由程序输出结果可以发现,str1 与 str3相等,这是因为 "==" 是用来比较内存地址值的;
str1 与 str3 相等,则证明str1 与 str3 是指向同一个内存空间的;
Java面向对象的编程的更多相关文章
- Java面向对象 网络编程 下
Java面向对象 网络编程 下 知识概要: (1)Tcp 练习 (2)客户端向服务端上传一个图片. (3) 请求登陆 (4)url 需求:上传图片. 客户端: ...
- Java面向对象 网络编程 上
Java面向对象 网络编程 上 知识概要: (1)网络模型 (2)网络通讯要素 (3)UDP TCP 概念 (4)Socket (5)UDP TCP 传输 ...
- 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:继承的应用
class Array{ // 表示数组 private int temp[] ; // 整型数组 private int foot ; // 定义添加位置 public Array(int len) ...
- 【持续更新】JAVA面向对象多线程编程的一些tips
sleep()和wait()的区别 sleep()方法是Thread类的方法,wait()方法是Object类的方法. 调用sleep()方法的过程中,线程不会释放对象锁,睡眠时间一过,就又开始执行. ...
- java面向对象基础编程题
第一题: 设计一个形状类Shape,方法:求周长和求面积.形状类的子类:Rect(矩形),Circle(圆形).Rect类的子类:Square(正方形).不同的子类会有不同的计算周长和面积的方法1.总 ...
- 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:匿名内部类
interface A{ public void printInfo() ; // } class B implements A{ // 实现接口 public void printInfo(){ S ...
- 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:包装类
public class WrapperDemo01{ public static void main(String args[]){ int x = 30 ; // 基本数据类型 Integer i ...
- 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:Object类
class Demo{ // 定义Demo类,实际上就是继承了Object类 }; public class ObjectDemo01{ public static void main(String ...
- 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:宠物商店实例分析
interface Pet{ // 定义宠物接口 public String getName() ; public String getColor() ; public int getAge() ; ...
随机推荐
- mysql中判断表中是否存在某条记录
SELECT CASE WHEN EXISTS (SELECT * FROM usergroupmap WHERE groupId = groupIdIn AND userId = v_friendI ...
- IIS上不能播放mp4
iis不支持mp4格式,需要手动添加. 进入iis服务管理器,打开你的网站,然后点击MIME类型---添加(扩展名:mp4 MIME类型:application/octet-stream) 如此即 ...
- 使用自定义脚本扩展程序自动执行 VM 自定义任务
在 Build 开发者大会上推出VM 扩展程序的其中一个称为"自定义脚本扩展程序",它支持 PowerShell.如果这是您第一次访问这些博客,可能需要查看以前的博客,请单击 ...
- 2015 11 26 java 配置环境变量
使用java软件, 须进行改变配置环境变量.需要2步. 第一,在电脑中找到配置环境变量的位置: 我的电脑,属性,高级,环境变量. 第二,进行添加两个变量,更改一个变量: 1,变量名:JAVA_HOME ...
- winform文件迁移工具
服务器D盘上传的文件过多,空间剩下很少了,于是想把里面部分文件,大概几万个文件转移到E盘,做了这个小工具.先查询出要转移的文件清单,保存在一个记事本中,如下所示: 接着读取文件名,一个个移动到指定目录 ...
- C#中两个整数相除得到带小数点的结果
有时候需要将两个整数相除,获得带小数点的float类型数.例如一个整数12345,需要变成123.45.常见与串口与硬件通讯,DSP处理浮点型比较麻烦,DSP传递来的温度等数据都以整型的方式传递,串口 ...
- Node.js笔记4
4. 文件系统 fs fs模块是文件操作的封装,提供了同步跟异步操作2个版本 * fs.readFile(filename,[encoding],[callback(err,data)]) 是最简单的 ...
- JavaScript之字符串引号的使用技巧
在JavaScript中可以随意使用引号,但是最好根据字符串包含的字符来选择. 1.如果字符串里面包含了单引号,那就把字符串放在双引号里面 var age = "this is 'pig'? ...
- window.showModalDialog刷新父窗口和本窗口的方法及注意
window.showModalDialog刷新父窗口和本窗口的方法及注意: 一.刷新父窗口的方法: A.使用window.returnValue给父窗口传值,然后根据值判断是否刷新. 在w ...
- mysq数据库管理工具navicat基本使用方法
navicat是mysql数据库的客户端查询管理工具,本文详细的介绍了该软件的基本使用方法 本文转自 http://hejiawangjava.iteye.com/blog/2245758 sql是操 ...