J2SE知识点摘记(五)
1、 引用数据类型的传递
java用引用代替C++中的指针
fun()方法接收的参数是是Change c1,也就是说说fun()方法接受的是一个对象的引用,所以fun方法中所所做的操作就会影响原先的参数.
2、 Obeject是所有类的父类,其中的toString()方法是需要被覆写的.Object类中有有一个equals方法,此方法用于比较对象是否相等,而且此方法必须被覆写.equals没有被覆写时,实际上是调用了Object类中的equals方法,比较的是内存地址.
3、 子类转型成父类是向上转型,反过来说,父类转型成子类就是向下转型.但是,向下转型可能会带来一些问题:我们可以说麻雀是鸟,但不能说鸟就是麻雀.向下转型需要使用强制转换.判断一个类对象是否是另一个类的实例:if(o instanceof Person){}
4、 接口中没有构造方法.所以无法直接实例化.但是可以通过接口的子类对其进行实例化。
6、 如何理解Person aa=new Student()
如果Student继承Person的话、叫向下转型相反则为向上转型.意思就是创建一个Person 的aa对象但这个对象的实例来自于Student.只有有继承关系才能这样用.
例子:
interface Usb
{
public void start();
public void stop();
}
class MoveDisk implements Usb
{
public void start() {
System.out.println("MoveDisk start...");
}
public void stop() {
System.out.println("MoveDisk stop...");
}
}
class Mp3 implements Usb
{
public void start() {
System.out.println("Mp3 start...");
}
public void stop() {
System.out.println("Mp3 stop...");
}
}
class Computer
{
public void work(Usb u) {
u.start();
u.stop();
}
}
public class TestInterface
{
public static void main(String[] args)
{
new Computer().work(new MoveDisk());
new Computer().work(new Mp3());
}
}
J2SE知识点摘记(五)的更多相关文章
- J2SE知识点摘记(二十五)
Set 1.5.1 概述 Java 中的Set和正好和数学上直观的集(set)的概念是相同的.Set最大的特性就是不允许在其中存放的元素是重复的.根据这个特点,我们就可以使用Set 这个 ...
- J2SE知识点摘记(十五)
1. 字节流和字符流的转换 以字符为导向的stream基本上有与之相对应的以字节为导向的Stream,两个对应类实现的功能相同,只是操作时的导向不同 字节输入流转换为字符输入流: Inp ...
- J2SE知识点摘记-数据库(二)
一. 查询数据 注意sql的内容. 通过ResultSet接口保存全部的查询结果,通过Statement接口中的executeQuery()方法查询.查询之后需要分别取出.通过nex ...
- J2SE知识点摘记(六)
1. static关键字的使用 static 关键字:可以用于修饰属性,也可以用于修饰方法,还可以用于修饰类. static 修饰属性:无论一个类生成了多少个对象,所有这些对象共同使用唯 ...
- J2SE知识点摘记(四)
1. 抽象类(abstract) 抽象类和抽象方法都必须用abstract关键字来修饰. 抽象类不能被直接实例化,也就是不能直接用new关键字去产生对象. 抽象方法只需声明,而不需实现. ...
- J2SE知识点摘记(三)
1. 在java只允许单继承,而不允许多重继承,也就是说一个子类只能有一个父类.但在java中却允许多层继承. 2. 非内部Class只能被public或者defaul ...
- J2SE知识点摘记(二)
1. 对象的声明 "类名 对象名 = new 类名();"例子:Person P;//先声明一个Person类的对象p p=new Person();//用new关键字实例化 ...
- J2SE知识点摘记(一)
1. 数组的声明时无法指定数组的长度. 2. 一维数组的声明和内存的分配 "数据类型 数组名[]; //声明一维数组 数组名= new 数据类型[ ...
- J2SE知识点摘记-数据库(一)
一. 数据库连接 在JDBC的操作过程中,进行数据库连接的主要步骤如下: 通过Class.forName()加载数据库的驱动程序.首先需要利用来自Class类中的静态方法forNam ...
随机推荐
- ado.net实现一个通知公告功能
一.建立相应的数据库,此处就不多说了,相信大家都非常了解
- Error:Execution failed for task ':app:mergeDebugResources'. > Some file crunching failed, see logs for details
Android Studio 编译中断.... Error:Execution failed for task ':app:mergeDebugResources'. > Some file c ...
- oracle 集合定义
集合:是具有相同定义的元素的聚合.Oracle有两种类型的集合: 可变长数组(VARRAY):可以有任意数量的元素,但必须预先定义限制值. 嵌套表:视为表中之表,可以有任意数量的元素,不需要预先定义限 ...
- 自定义View 一 (继承VIew重写onDraw方法)
项目:具有圆形效果的自定义View 一.继承View并重写onDraw方法 public class CircleView extends View{ private static final int ...
- Jmeter性能测试 及压测入门
Jmeter是一个非常好用的压力测试工具. Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好. 为什么要建立线程组?原因很简单,因为我们要模拟多个线程(用户 ...
- Node中npm 安装问题
首先,我们的npm包无所谓安全性,所以不要使用性能和效率更慢的https,转而使用http,相关命令如下: 1.关闭npm的https npm config set strict-ssl fals ...
- web站点监控脚本web_status_code,tomcat 80,oracle1521
1,完整的监控脚本如下 #!/bin/bash #web_status_code=`curl -o /dev/null -s -w "http_code:%{http_code}" ...
- Oracle表空间常用操作
--创建表空间 create tablespace test datafile 'E:\test2_data.dbf' SIZE 20M autoextend on next 5M maxsize 5 ...
- hdu 1035 Robot Motion(模拟)
Problem Description A robot has been programmed to follow the instructions in its path. Instructions ...
- Win8 App使用Listview的简单方法
这是Win8 App神圣不可侵犯的头文件: <head> <meta charset="utf-8"> <title>ListViewExamp ...