C程序员转JAVA要点

1. char c 可以存一个中文字符
2. 如果你已经增加了一个有参的构造函数, 编译器将不会再增加无参的构造函数。需要注意此时new 时要加参数。
3. this 代表调用函数的这个对象。 一般情况可以被省略,如果方法的参数与成员变量同名,则this不可以被省略。
4. this 可以在一个构造函数中调用另外一个构造函数, this等于调用本类当中的另一个构造函数。 this(addr, name);
如果希望用this调用本类的其它构造函数时, 必须是本方法的第一台语句。
5. 如果类中有静态成员变量, 可以使用类名直接调用,不必new出对象来调用。
且所有生成对象的类中,使用的静态成员变量都为1份。静态变量是类层次的变量。
在数态函数中,不能调用非静态的变量。
静态代码块是在装载类的时候执行. 不管是new还是直接执行静态函数, 是用来为静态变量赋初始值。
6. java中只支持单继成。 类继成父类需要使用class name extends fatername
7. 子类默认是不能继承父类的构造函数的。但是new子类时,会默认先执行父类的
构造函数,实际上是编译器在子类的构造函数中加了super(),来执行父类的构造函数。
8. 在子类中重新定义父类的函数, 就可以实现父类函数的复写。在复写父类的方法
时, 可以通过super.调用父类的方法。
9. 一个引用能够调用哪些成员,取决于这个引用的类型。对象转型后也只能调用引用
类型的方法。
一个引用调用的是哪一个方法,取决于这个引用所指向的对象,如子类复写了父类的
成员函数,则对象转型后会调 用子类的成员函数。
向下转型, 先把一个对象向上转型,然后再将转型后的父类强制(type)转换到子类。
直接生成的父类的对象, 是无法进行向下转型的。
10. 抽象函数, abstract void func(); 表示只有定义,没有函数体。 包含有抽象函
数的类,必须是抽象类。 如果类中没有抽象函数,也可以声名为抽象类。
抽象类不能被生成对象.它天生就是被用来继承的。继承的子类也被声名为抽象类,也可以复写父类的抽象函数,子类而不用定义为抽象类。
如果不想一个类被生成对象, 就可以加上abstract来定义为抽象类。
抽象类也有构造函数,在生成子类对象的时候,会自动调用父类的对象。
11. 软件包的打包方法, 在类中使用package加上包名,编译时javac -d . Test.java, -d 是依照包名生成相应的文件夹, . 代表生成的目录。
一个类打了包后,这个类的全名应该是"包名" + "." + "类名"
包名的命令规范: 1. 包名所有字母要小写. 2.包名是你的域名倒过来写。
12. 两个类不在一个包中,一个类引用另外一个类,需要加上全称,另一个类需声明
为public, 且需要访问的成员也需要是public. 在同一包中则不需要使用全称引用。
public 包外可任意访问 private类内可访问 default 包内可访问
protected拥有和default一样的功能,该权限只能修饰成员变量和函数。它还允许
跨包的继承。表示只有子类才可以使用protected类的成员。
13. 接口: 关键字:interface 接口中的方法全是抽象方法, 也全是public权限.
子类实现一个接口的时候,需要用implements.
intface USB {
}
public USBPhone implements USB, WiFi {    
}
一个类可以继承多个接口,一个接口可以继承多个接口,接口的名字使用逗号隔开.
14. 异常: 中断了正常指令流的事件。
异常分为: exception   error(虚拟机直接关闭)
不出异常执行try中代码, 出异常执行catch中代码,finally任何情况总是执行。
try {
    int i = 1 / 0;
} catch (Exception e) {
    e.printStackTrace();
} finally {
    Ssystem.out.println("alway come here");
}
手动生成异常对象方法, 定义异常e, 用throw抛出异常。
RuntimeException e = new RuntimeException("异常打出的信息");
throw e;
RuntimeException 是运行时异常, Exception是编译时异常.
用throws声名异常, 声明后当前函数就不需要处理异常了,由调用函数来处理。
public void function() threws Exception {
}
15. I/O系统: 输入流,输出流,字节流,字符流, 节点流,处理流
导入import java.io.* 包
InputStream OutputStream 所有字节流的父类, 是抽象类。
FileInputStream FileOutputStream  是InputStream,OutputStream的子类。
int read(byte[] b, int off, int len);
void write(byte[] b, int off, int len); InputStream的成员函数。
Reader, Writer 所有字符流的父类,是抽象类
FileReader, FileWriter
16. 内部类: 生成内部类的对象时,需要先生成外部类对象
A.B b = new A().new B();
在内部类当中, 可以随意使用外部类的成员变量。
匿名内部类:
func {new A() {
    public void doSomething {
        System.out.println("匿名内部类");
    }
}}
17. 线程: 创建线程有两个方法 第一,定义一个类,继承Thread类并重写run方法.
然后new出继承类的对象, 再调用new出来的对象的start(), 来启动线程, 不能用
run启动。 run中是线程体。
        FirstThread ft = new FirstThread();
        ft.run();
第二, 生成一个runnable接口对象, 再生成一个Thread对象, 将runnable传递给Thread
的构造函数, 再调用生成的Thread对象的引用的start方法来启动线程。
        RunnableImpl th = new RunnableImpl();
        Thread t = new Thread(th);
        t.start();
        
Thread.setName 设置线程的名字, Thread.getName获取线程的名字
Thread.CurrentThread()用来获得当前在哪个线程中。
synchronized(this) {

} 同步代码块

18. 类集框架是一组类和接口, 位于java.util包当中,用于存储和管理对象.
主要分为三大类,集合,列表,映射。
集合(set)中的对象不按特定的方式排序,并且没有重复对象。
列表(list)集合中对象按照索引位置排序,可以有重复对象。
映射(map)集合中的每一个对象包含了一个键对象和一个值对象,键不可重复,值可以。
ArrayList<String>  尖括号中是java的泛型机制。

List接口
arrayList.add(); arrayList.get(); arrayList.remove; new arrayList();

Collection接口
boolean add; void clear; isEmpty; remove; size;

Iterator生成方法set.iterator();
hasNext(); next();

Map接口
map.put("",""); map.get("",""); map.size();

19. equals
对象的类型相同,可以用instanceof操作符比较
两个对象的成员变量完全相关。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值