(1)arraycopy(数组拷贝)
package hello;
public class Hello{ //创建一个类叫做Hello
public static void main(String[] args) {
int[] a = {1,2,3,4,5};
int[] b = new int[a.length];
System.arraycopy(a, 0, b, 0, a.length);//将数组a拷贝到数组b中,两个0是对应拷贝的下
//标,a.length是拷贝的个数
for(int i=0;i<a.length;i++) {//遍历数组b
System.out.println(b[i]); // 1 2 3 4 5
}
}
}
(2)增强的for循环(更好的遍历数组)
package hello;
public class Hello{ //创建一个类叫做Hello
public static void main(String[] args) {
int[] a= {1,2,3,4};
for(int number : a ) { //遍历数组a
System.out.println(number);
}
}
}
(3)扩展数组
package hello;
import java.util.Arrays;//导入java.util.Arrays的类
public class Hello{ //创建一个类叫做Hello
public static void main(String[] args) {
int[] a= {1,2,3,4};
a = Arrays.copyOf(a, 5);//将数组a的容量扩展到了5
}
}
(4)捕获多个异常
在accept()功能可能会抛出4个异常所以可以通过管道字符 | 将处理情况相同的异常放在一个catch中
try {
a.accept();
}catch(SocketTimeoutException | SecurityException |
IllegalBlockingModeException e) {
}catch(IOExcpetion e) {
}
(5)instanceof运算符 判断对象是否属于该类型的
String b = "Hello";
System.out.println(b instanceof java.lang.String);//true 表示对象b是java.lang.String
// 类型的
注意:在父类和子类中 对子类的对象进行对父类判断返回的是true ,因为子类是其父类的一种类型
class Animal{//建立一个Animal超类(父类)
}
class Dog extends Animal{//建立Animal的子类Dog
}
public class Hello{ //创建一个类叫做Hello
public static void main(String[] args) {
Dog b=new Dog();
System.out.println(b instanceof Dog);//true
System.out.println(b instanceof Animal);//true
}
}
(6)子类的super()功能
package hello;
class Animal{//建立一个Animal超类(父类)
public Animal() {
System.out.println("Hello");
}
public Animal(String s) {
System.out.println("Hello"+s);
}
}
class Dog extends Animal{//同理建立Animal的子类dog
public Dog(String s) {
super(s);//将父类的构造方法变成功能重载使用并且该语句一定是首位语句
System.out.println(s);
}
}
public class Hello{ //创建一个类叫做Hello
public static void main(String[] args) {
Dog eam =new Dog("World"); //Hello World
}
}
注意: 直接调用父类中不存在的构造方法 会报错
class Animal{//建立一个Animal超类(父类)
public Animal(String s) {
System.out.println("Hello"+s);
}
}
class Dog extends Animal{//同理建立Animal的子类dog
public Dog() { //注意这里会报错
//因为创建子类实例时会调用父类传入字符的构造方法但是子类没有传入字符构造方
//法所以会报错
}
}
解决方法
class Animal{//建立一个Animal超类(父类)
public Animal(String s) {
System.out.println("Hello"+s);
}
}
class Dog extends Animal{//同理建立Animal的子类dog
public Dog() {
super(null);//传入null保证安全,程序也不会报错
}
}
1 利用super关键字调用父类的隐藏成员和覆盖的功能
package hello;
class Animal{//建立一个Animal超类(父类)
public String toString() {//该功能隐式覆盖了静态的toString的功能
return "World";
}
}
class Dog extends Animal{
public String toString() {//该功能覆盖了父类的toString的功能
return "Hello";
}
public void write() {
System.out.println(toString());//因为覆盖了父类的功能所以使用的是子类的功能
System.out.println(super.toString());//通过super调用覆盖了的父类功能
}
}
public class Hello{ //创建一个类叫做Hello
public static void main(String[] args) {
Dog eam =new Dog();
eam.write();//Hello World
}
}