JAVA学习笔记[3]

Java笔记【3】

  • 数组继承了object类的toString方法,数组类型将按照旧的格式打印。修正的方式是调用静态方法Arrays.toString,要想打印多维数组,调用Arrays.deepToString方法。
  • java.lang.Object
    • Class getClass()
      返回包含对象信息的列对象。它的内容被封装在Class类中。
    • boolean equals (Object otherObject)
      比较两个对象是否相等,如果两个对象指向同一块存储区域,方法返回true ,否则方法返回false,在自定义的类中,应该覆盖这个方法。
    • String toString()
  • java.lang.Class
    • String getName()
      返回这个类的名字
    • Class getSuperclass()
      以Class对象的形式返回这个类的超类信息。
  • java.util.ArrayList()
    • ArrayList()
      构造一个空数组列表。
    • ArrayList(int initialCapacity)
      用指定容量构造一个空数组列表。
      参数:initalCapacity 数组列表的最初容量
    • boolean add(E obj)
      在数组列表的尾端添加一个元素。永远返回true
      参数:obj 添加的元素
    • int size()
      返回存储在数据列表中的当前元素数量
    • void ensureCapacity(int capacity)
      确保数组列表在不重新分配存储空间的情况下就能够保存给定数量的元素
      参数:capacity 需要的存储容量
    • void trimToSize()
      将数组列表的存储容量削减到当前尺寸。
    • void set (int index,E obj)
      设置数组列表指定位置的元素值,这个操作将覆盖这个位置的原有内容
    • E get(int index)
    • void add(int index,E obj)
    • E remove (int index)
  • java.lang.Integer
    • int intValue()
      以int的形式返回Integer对象的值(在Number类中覆盖了intValue方法)
    • static String toString(int i )
      以一个新String对象的形式返回给定数组i的十进制表示。
    • static String toString(int i,int radix)
      返回数值i的基于给定radix参数进制的表示
    • static int parseInt(String s)
    • static int parseInt(String s,int radix)
      返回字符串s表示的整型数值,给定字符串表示的是十进制的整数,或者是radix参数进制的整数
    • static Integer valueOf(String s)
    • static Integer valueOf(String s,int radix)
      返回用s表示的整型数值进行初始化后的一个新Integer对象,给定字符串表示的是十进制的整数,或者是radix参数进制的整数
  • 枚举类:枚举类链接
  • java.lang.Enum
    • static Enum valueOf(Class enumClass,String name)
      返回指定名字、给定类的枚举常量
    • String toString()
      返回枚举常量名
    • int ordinal()
      返回枚举常量在enum声明中的位置,位置从0开始计数。
    • int compareTo(E other)
      如果枚举常量出现在other之前,则返回一个负值,如果this==other,则返回0;否则,返回正值,枚举常量的出现次序在enum声明中给出。

接口

  • 接口中的所有方法自动属于public,在实现接口是必须把方法声明为public
  • 接口不是类,不能实例化,能声明接口的变量,必须引用实现了接口的类对象
  • 可以使用instanceof检查一个对象是否实现了某个特定的接口
  • 接口中不能包含实例域或静态方法,却可以包含常量,接口中的所有域都被自动设为public static final
  • 允许在接口中增加静态方法
  • 可以为接口方法提供一个默认实现,必须用default修饰符标记这样一个方法。
  • 解决默认方法冲突 如果先在一个接口中将一个方法定义为默认方法,然后又在超类或另一个接口中定义了相同的方法1)超类优先:如果超类提供了一个具体方法,同名而且有相同参数类型的默认方法会被忽略。2)接口冲突:如果一个超接口提供了一个默认方法,另一个接口提供了一个同名而且参数类型相同的方法,必须覆盖这个方法来解决冲突。如果两个接口都没有为共享方法提供默认实现,那么就不存在冲突。如果至少有一个接口提供了一个实现,编译器就会报告错误,而程序员就必须解决这个二义性。
  • 类的访问权限只有两种:包访问权限或者public
  • 工厂方法设计模式:
// interfaces/Factories.java
interface Service {
    void method1();
    void method2();
}

interface ServiceFactory {
    Service getService();
}

class Service1 implements Service {
    Service1() {} // Package access

    @Override
    public void method1() {
        System.out.println("Service1 method1");
    }

    @Override
    public void method2() {
        System.out.println("Service1 method2");
    }
}

class Service1Factory implements ServiceFactory {
    @Override
    public Service getService() {
        return new Service1();
    }
}

class Service2 implements Service {
    Service2() {} // Package access

    @Override
    public void method1() {
        System.out.println("Service2 method1");
    }

    @Override
    public void method2() {
        System.out.println("Service2 method2");
    }
}

class Service2Factory implements ServiceFactory {
    @Override
    public Service getService() {
        return new Service2();
    }
}

public class Factories {
    public static void serviceConsumer(ServiceFactory fact) {
        Service s = fact.getService();
        s.method1();
        s.method2();
    }

    public static void main(String[] args) {
        serviceConsumer(new Service1Factory());
        // Services are completely interchangeable:
        serviceConsumer(new Service2Factory());
    }
}
输出:
Service1 method1
Service1 method2
Service2 method1
Service2 method2
  • 接口与回调:java.swing包中有一个Timer类。要求传递的对象所属的类实现了java.awt.event包的ActionListener接口
public interface ActionListener
{
	void actionPerformed(ActionEvent event);
}
  • javax.swing.JOptionPane
    static void showMessageDialog(Component parent , Object message)
    显示一个包含一条消息和OK按钮的对话框,这个对话框将位于其parent组件的中央。如果parent为null,对话框将显示在屏幕的中央。
  • javax.swing.Timer
    Timer(int interval,ActionListener listener)
    构造一个定时器,每隔interval毫秒通告listener一次。
    void start()
    启动定时器。一旦启动成功,定时器将调用监听器的actionPerformed
    void stop()
    停止定时器。一旦停止成功,定时器将不再调用监听器的actionPerformed
  • java.awt.Toolkit
    static Toolkit getDefaultToolkit()
    获得默认的工具箱,工具箱包含有关GUI环境的信息。
    void beep()
    发出一声铃响
package JavaNote1;

import JavaNote2.Student;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.Arrays;


public class Practice1 {
    public static void main(String[] args) {       
        ActionListener listener = new TimerPrinter();
        Timer t=new Timer(5000,listener);
        t.start();
        JOptionPane.showMessageDialog(null,"Quit ?");
        System.exit(0);
    }
}
class TimerPrinter implements ActionListener{
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println( LocalTime.now());
        Toolkit.getDefaultToolkit().beep();
    }
}

  • Comparator接口:比较器是实现了Comparator接口的类的实例重写compare方法
  • 对象克隆:类必须实现Cloneable接口(标记接口),重写clone方法,并指定public访问权限。
    所有数组类型都有一个public的clone方法,而不是protected。可以用这个方法建立一个新数组,博涵原数组所有元素的副本。例如
    int[] luckyNumbers={2,3,4,7,11,13};
    int[]cloned=luckyNumbers.clone();
    cloned[5]=12;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值