Java复习
1. Java中创建类的时候,不写类的 修饰符 默认是 default 权限, 是可以在同包下相互访问的 ;如果是 public 类型,是允许跨包访问的 ; 如果是 Private类型,仅允许在类内访问,连子类都访问不了
protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问
2.同样,Java方法中默认的修饰符也是default ,默认什么都不加,就是default(不用把default写出来)。意思就是只能由跟这个类在同一个包中的类来访问,比private限制更少,但比protected限制更多。'
3.记住静态方法和对象完全无关,所以静态方法不存在方法覆盖这么一说!!静态方法一般用类名来进行调用
4.静态变量是 属于类的,
5.非静态方法既可以访问静态方法又可以访问非静态方法,而静态方法只能访问静态数据方法。
(这个要切记,在Java复习第一个笔记中就有这个记录,静态方法是不能访问非静态变量的,但是非静态变量是可以访问静态方法的)
6.弄清方法覆盖和方法重载的区别
方法覆盖必须发生在具有继承关系的父子关系中(重写后的方法必须的之前的方法具有相同的方法名,参数列表以及返回值!!)
方法重载是在一个类中,方法名必须相同,但参数列表不一致
7.弄清楚 super() 的作用,A类继承B类,B类有两个构造方法,一个有参,一个无参,A类在写构造方法的时候,第一行会默认加上 super() (你看不见。。),但是这个默认调用的是B类的无参构造,所以父类写构造方法的时候一定要注意
8.Java一个类中只能有一个 public 类
9.Java单引号表示字符,双引号才表示字符串
10.final 修饰的类无法被继承,
final 修饰的方法无法被重写
11.注意,抽象类中的抽象方法是不可以写 方法体的
例如: public abstract void eat() ;
12.
抽象类中可以有抽象方法和非抽象方法!!!!!
非抽象类可以继承抽象方法,但是,但是,前提是必须实现(其实就是重写)抽象方法!!
《别记混了》非静态方法既可以访问静态方法又可以访问非静态方法,而静态方法只能访问静态数据方法。
13.
接口定义 : interface A{}
接口中抽象方法定义: public abstract void A(); 咱们上课教学的时候教的 是 : public void A(); 可以把 abstract 省略
接口中常量的定义 :public static final int x = 10 ; 也可以直接省略 public static final
14.类和类之间叫继承,接口和接口之间叫实现
15.匿名类
一般都是继承或者实现(实现接口)的关系,匿名类就可以在类中直接创建对象,但是需要在对象的方法体中把父类(或者接口)中的方法全部实现
16.
定义数组的两种方式
int arry1 [ ] = {1,2,3,4,5}
String names [ ] = { "zhangsan" , "llisi" , "wangwu " }
还有一种就是常见的
type [ ] arryname = new type[arrysize]
int [ ] num = new int[10]
string [ ] str = new str[5]
值得注意的是 Java中没有静态数组的定义(C怎么定义数组的,那种定义方式就是静态数组 ) ,数组的内存都是通过 new 动态分配的
这种写法就是错误的 int intarry[10]
这里需要注意定义多维数组的时候
int a [ ] [ ] = new int [2] [3]
实例化对象数组
shape [ ] s = new Circle [ 5 ] ;
接口名 [ ] 数组名 = new 实现类名称 [ 数组大小 ]
17.内部类
定义:一个类定义在另一个类的方法或者类里面,称为内部类
匿名内部类属于局部内部类的一种,
18.Java输入流定义
Scanner scan = new Scanner( System.in );
String name = scan.nextline( )
int a = scan.nextInt( )
19.输入输出总结
InputStream 字节输入流
OutputStream 字节输出流
以Stream结尾的都是!!字节流!!
Writer 字符输出流
Reader 字符输入流
InputStreamReader( ) 这俩的作用就是将字节流转换为字符流
OutputStreamReader( ) 这俩的作用就是将字节流转换为字符流
BufferedReader
BufferedWriter 这两个都只接收 字符流 ,所以在使用之前必须使用 InputStreamReader 或者 OutputstreamWriter进行转换
内容追加
BufferedWriter ( new FileWriter("路径",True) )
BufferedReader( new FileReader("路径") )
InputStreamReader isrr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isrr);
20.
1、在java中,以下(C)类的对象以键-值的方式存储对象
A、java,util.List
B、java,util.ArrayList
C、java,util.HashMap
D、java,util.LinkedList
解题:Map以key-value形式保存,HashMap、HashTable继承自Mao
ArrayList底层以数组方式存储
Linked以链表形式存储
21.监听事件的写法
内嵌类的方法:
MyListener listener = new MyListener();
JButton button = new JButton("OK");
button.addActionListener(listener);
class MyListener implements ActionListener{
...
public void actionPerformed(ActionEvent event){
...
}
}
22.
java.util工具包
java.sql数据库包
java.io输入输出流包
java.net网络包
java.lang基础包 system 和 string 方法都是在这个包里面
23.
Java中length 和 length() 区别
24.Java 中的 Finally 关键一般与try一起使用,在程序进入try块之后,无论程序是因为异常而中止或其它方式返回终止的,finally块的内容一定会被执行 。
25.
26.JAVA语言中提供了String和StringBuffer两种类型的字符串类来处理字符串
27.Java语言是一种完全的 面向对象 编程语言
28.常量名必须完全大写
29.Java中用于定义整形变量的有四个关键字,分别为
byte,short,int,long
30.
简单数据类型包括 :整形数据类型,字符型数据类型,浮点型数据类型,布尔型数据类型
31.布尔型数据类型的保留字(也称为关键字, Boolean)
32.java源程序文件和字节码文件的文件后缀分别为
.java 和 .class
33.分别用 claass来 定义类,用 new 来定义新方法
34.Java中不允许多继承,允许继承多个接口
35.用static 修饰的变量叫静态变量,它可以通过类的对象或类名直接调用
36.
一、使用abstract修饰符修饰的类被称为抽象类;
抽象类不能实例化对象,只能被继承;
二、使用abstract修饰符修饰的方法被称为抽象方法;
抽象方法不能有方法体,子类必须重写抽象类中所有的抽象方法;
三、抽象类中不一定包含抽象方法,但包含抽象方法的类一定是抽象类;
37.
1.private修饰的成员变量和函数只能在类本身和内部类中被访问。
2. protected 修饰的成员变量和函数能被类本身、子类及同一个包中的类访问。
3.public修饰的成员变量和函数可以被类、子类、同一个包中的类以及任意其他类访问。
4. 默认情况(不写)下,属于一种包访问,即能被类本身以及同一个包中的类访问。
38.
类体中的方法包含了哪些分类?
按参数可分为:有参数方法和无参数方法
按返回值类型可分为:有返回值和无返回值方法
按功能可分为:实例方法、静态方法、构造方法
39.
1、实例变量在类中声明,但在方法,构造函数或任何块之外。类变量(也称为静态变量)在
类中使用static关键字声明,但在方法,构造函数或块之外。
2、使用关键字“new”创建对象时会创建实例变量,并在销毁对象时销毁。程序启动时会创
建静态变量,程序停止时会生成静态变量。
40.
在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。
41.
(1)this代表当前对象的一个引用。所谓当前对象,指的是调用类中方法或属性的那个对象。
(2)this只能在方法内部使用,表示对“调用方法的那个对象”的引用
(3)this不能用于静态方法。main方法也是静态的,所以this也不能用于main方法。
(4)可以使用this关键字调用重载构造方法。(创建两个构造方法,一个有参,一个无参但是有输出,在有参的构造方法里面第一行写this() 就会自动调用 无参的构造函数)
42.输入代码格式
Scanner scan = new Scanner(System.in)
String input = scan.nextline();
千万别忘记导包!!!!
import java.util.*
注意注意,在接口的实现中,一定要全部实现接口中的所有方法!!!
43.补充记录
在Java中,例外可分为三类, throwbale, error ,exception
抛出自定义异常用 throws 语句,在方法中抛出异常用 try/catch 语句
32、窗口默认的布局方式边界布局,面板默认的布局方式是流布局。
30、接口声明有___常量_______和_抽象方法__ ______
31、声明一个含有10个String对象的数组String s[10]
44.
public + final 是用来 定义静态常量,也就是接口中的那个
public static final int PI = 10 ; 注意!!!常量的名称必须是大写!!
仅仅一个final,是用来定义普通常量 int a = 10 ; 在类内方法外就是成员常量,在方法内就是局部常量
类中静态变量的定义 : static int a = 10 ; 可为多个实例对象所共享 ,只需前面加上 static 关键字
没毛病!!
45.
基本数据类型
boolean char double int float long short
46.Java会自动将 int 转化为 double ,但是不会将 double 自动转换成 int
47.用 static 修饰的叫静态变量,也可称为类变量,可用类的对象或者 类名来直接访问
48.
Java中缺省加载的是 Java.lang 包,Java中最基础的库类是 java.lang.object
49.接口声明中有常量和抽象方法
50.