标题
构造方法
以下有关构造方法的说法,正确的是:(A)
A.一个类的构造方法可以有多个
B.构造方法在类定义时被调用
C.构造方法只能由对象中的其它方法调用
D.构造方法可以和类同名,也可以和类名不同
定义
一个在创建对象时自动被调用的特殊方法
作用
为对象进行初始化(成员变量)工作,即初始化类对象的属性,而构造对象是通过new关键字
特征
构造器是一种特殊的方法
1.构造方法的名称必须跟类名保持一致
2.构造方法虽然有返回值(返回一个已经初始化好的对象),但是不能定义返回类型,返回值的类型肯定是本类类型,不能用关键字void,不能在构造器里调用return
3.构造方法在创建类对象的时候通过关键字new被调用
(当我们没有写构造方法的时候,系统会默认给我们添加一个无参构造方法。但是只要我们给出了一个构造方法,系统就不会给出默认的无参构造方法,所以在写类的时候,一般建议自己手动加上无参构造方法)
4.和普通方法一样,构造方法也可以重载
摘自:
某个博客
static修饰
static string singTon;
System.out.println(singTon);
输出null
1.静态字段会进行默认初始化
2.静态方法可以直接调用同类中的静态成员,但是不能直接调用非静态成员
3.在普通成员方法中,则可以直接访问同类的非静态变量和静态变量
4.静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法
private作用
private是访问控制修饰符,用来使用访问控制符来保护对类、变量、方法和构造方法的访问
在程序中需要隐藏类的实现细节和保护类的数据时,就要使用private来修饰
例如:
public class Logger {
private String format; public String getFormat() {
return this.format;
}
public void setFormat(String format) {
this.format = format;
}
}
Logger 类中的 format 变量为私有变量,所以其他类不能直接得到和设置该变量的值。
为了使其他类能够操作该变量,定义了两个 public 方法:getFormat() 和 setFormat(String)。
奇妙if
int i = 1;
if(i=1){
System.out.println(“ok”);
}
编译出错
boolean boo=false;
if(boo=true){
System.out.println("a");
}
else{
System.out.println("b");
}
输出a
接口
interface :接口的关键字
implements:实现接口的关键字
interface A{
//成员变量
public static final int i=10; //接口中默认有:public static final修饰变量;最终都是常量
//成员函数
public void print();
}
//Demo11就实现了A接口
class Demo11 implements A{
}
abstract class和interface有什么区别。ABD
A、抽象类可以有构造方法,接口中不能有构造方法
B、抽象类中可以有普通成员变量,接口中没有普通成员变量
C、抽象类中不可以包含静态方法,接口中可以包含静态方法
D、一个类可以实现多个接口,但只能继承一个抽象类。
继承
在继承中,关于构造方法的说明,下列说法错误的是(D)
A、子类无条件的继承父类的无参构造方法,
B、子类可以引用父类中的有参构造方法,使用super关键字,
C、如果子类没有构造方法,则父类无参构造方法作为自已的构造方法,
D、如果子类有无参构造方法,而父类的无参构造方法则被覆盖。
杂闻
支持javadoc命令注释形式:/**…*/
java语言使用的字符码集是Unicode
synchronized 关键字可以对对象加互斥锁
在面向对象的方法中,一个对象请求另一个对象为其服务的方式是通过发送消息
编写和运行Java applet程序与编写和运行Java application程序不同的步骤为:编写HTML文件调用该小程序,以.html为扩展名存入相同文件夹
在编写Java applet程序时,若需要对发生事件作出响应和处理,一般需要在程序的 开头写上import java.awt.event.*; 语句
Java的字符类型采用的是Unicode编码方案,每个Unicode码占用16个比特位
在 JAVA编程中,Java编译器会将Java程序转换为字节码
equals和==的区别
== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作
equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象
类与对象
类是对象的抽象
实例化一个对象
Object referenceVariable = new Constructor()
抽象方法
关于抽象方法的说法正确的是(D)
(A)可以有方法体
(B)可以出现在非抽象类中
(C)是没有方法体的方法
(D)抽象类中的方法都是抽象方法
GUI
Swing提供3种顶层容器类:JFrame,JDialog,JApplet
Swing与aWT的区别不包括(D)
(A)Swing是由纯Java实现的轻量级构件
(B)Swing没有本地代码
(C)Swing不依赖操作系统的支持
(D)Swing支持图形用户界面
IO
字节流与字符流的区别
1.定义
字节流是一种执行8位字节输入和输出的机制,基本单元为字节;而字符流是Java中执行16位Unicode输入和输出操作的机制,基本单元为Unicode码元
2.结尾
字节流以stream结尾;而,字符流以reader和writer结尾
3.处理方式
字节流是最基本的,采用ASCII编码;它通常用于处理二进制数据,它是按字节来处理的,实际上它可以处理任意类型的数据,但它不支持直接写入或读取Unicode码元。字符流采用Unicode编码,它是按虚拟机的encode来处理,也就是要进行字符集的转化;它通常处理文本数据,它支持写入及读取Unicode码元
4.缓冲区
字节流默认不使用缓冲区;字符流使用缓冲区
为读取的内容进行处理后再输出,需要使用Filter stream流
为实现多线程之间的通信,需要使用Piped stream流