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 是指向同一个内存空间的;
相关文章
- RabbitMQ工作模型及与Java编程
- 学了这么久的高并发编程,连Java中的并发原子类都不知道?
- java中HashMap的设计精妙在哪?
- 大数据-Hadoop-MapReduce(一):离线数据编程分析框架【Java语言】【运算效率低;被SparkCore的RDD编程取代】【不擅长实时计算、不擅长流式计算、不擅长DAG计算】
- java LinkedBlockingDeque详解
- 重新精读《Java 编程思想》系列之向上转型与向下转型
- java将两个数组合并为一个数组并排序,看完没有不懂的
- Java Runnable、Callable、FutureTask
- 《Java语言导学(原书第6版)》一第2章 面向对象的编程概念
- 关于Java中的整数类型值比较的疑问
- I/O exception (java.net.SocketException) caught when processing request: Connect
- Java并发编程:Callable、Future和FutureTask
- 【并发编程】Java中的锁有哪些?
- [Java]double初始化问题
- java-并发-线程安全
- 【JAVA】力扣-167-两数之和 II
- Java编程思想重点笔记(Java开发必看)
- JNI的又一替代者—使用JNR访问Java外部函数接口(jnr-ffi)
- password学3——Java BASE64加密解密
- 【Java AWT 图形界面编程】事件处理机制 ③ ( AWT 中常见的事件和事件监听器 | 低级事件 | 组件事件 | 窗口事件 | 鼠标事件 | 高级事件 | 动作事件 | 事件监听器 )
- (转)Java并发编程:volatile关键字解析
- Java Swing界面编程(18)---单行文本输入组件:JTextField
- 第二十六章:Java编程之反射
- 第十四章:Java编程之注释
- 第十三章:Java编程之数据类型转换
- 【Java AWT 图形界面编程】LayoutManager 布局管理器 ④ ( GridLayout 网格布局 | GridBagLayout 网格包布局 )
- 【Java AWT 图形界面编程】Container 容器 ③ ( ScrollPane 可滚动容器示例 )
- 1033 旧键盘打字(JAVA)
- 将Java EE单体应用打造成微服务
- JAVA 十六进制与字符串的转换
- 【华为OD机试真题 Java】积木最远距离 (A卷2022Q4)
- 大数据必学Java基础(八十五):自定义注解
- 大数据必学Java基础(八十二):基于UDP的网络编程