Java慕课笔记 - 02

final关键字

  1. final关键字代表最终、不可改变。
  2. 常见四种用法:
    1. 可以用来修饰一个类。
    2. 可以用来修饰一个方法。
    3. 可以用来修饰一个局部变量。
    4. 可以用来修饰一个成员变量。

四种权限修饰符

publicprotecteddefaultprivate
同一个类YESYESYESYES
同一个包YESYESYESNO
不同包子类YESYESNONO
不同包非子类YESNONONO

内部类的概念与分类

1、 成员内部类

成员内部类定义格式:

   修饰符 class 外部类名称{
      修饰符 class 内部类名称{
         //...
      }
      //...
   }

注意:内用外,随意访问;外用内,需要内部对象。

如何使用成员内部类?有两种方式

  1. 间接方式:在外部类的方法中,使用内部类;然后main只是调用外部类的方法。
  2. 直接方式:外部类名称.内部类名称 对象名 = new 外部类名称().new 内部类名称();
  3. 如果出现了重名现象,那么格式是:外部类名称.this.外部类成员变量名称

2、 局部内部类

如果一个类是定义在一个方法内部的,那么这就是一个局部内部类。
“局部”:只有当前所属的方法才能使用它。

定义格式:

   修饰符 class 外部类名称 {
      修饰符 返回值类型 外部类方法名称(参数列表) {
         class 局部内部类名称 {
            //...
         }
      }
   }

注意事项:局部内部类,如果希望访问所在方法的局部变量,那么这个局部变量必须是【有效final的】。
备注:从Java 8开始,只要局部变量事实不变,那么final关键字可以省略。

3、 匿名内部类【使用频率最高】

如果接口的实现类(或者父类的子类)只需要使用唯一的一次。那么这种情况下就可以省略掉该类的定义,而改为使用【匿名内部类】。

匿名内部类的定义格式:

   接口名称 对象名 = new 接口名称(){
      //覆盖重写所有抽象方法
   };

对格式进行解析:

  1. new代表创建对象动作
  2. 接口名称就是匿名内部类需要实现哪个接口。
  3. {...}这才是匿名内部类的名称。

注意:

  1. 匿名内部类,在创建对象的时候,只能使用唯一一次。
  2. 匿名对象,只能在调用方法的时候唯一使用一次。
  3. 匿名内部类是省略了【实现类/子类名称】,但是匿名对象是省略了【对象名称】。

类的权限修饰符

  1. 外部类:public/(default)
  2. 成员内部类:public/protected/(default)/private
  3. 局部内部类:什么都不能写

Object类

  1. Object是所有类的超类。
  2. 所有得对象(包括数组)都可以实现这个类得方法。

Date类

  1. 毫秒是千分之一秒。
  2. 格式化日期使用DateFormat类中的方法,将日期格式化为文本。
    1. 创建SimpleDateFormat对象,构造方法中传递指定的模式。
    2. 调用SimpleDateFormat对象中的方法format,按照构造方法中指定的模式,把date日期格式化为符合模式的字符串(文本)。
    3. SimpleDateFormat对象的parse方法,将字符串转换成日期。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
	public static void main(String[] args) {
		Date date = new Date();
		String s1 = "2021-06-07";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		try {
			Date d1 = sdf.parse(s1);
			System.out.println(days(d1,date));
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}	
	public static int days(Date d1,Date d2) {
		int n = (int) ((d1.getTime() - d2.getTime())/ (1000*3600*24));
		return n;
	}
}

Calendar类

  1. Calender类,日历类。

  2. Calendar类是一个抽象类,里面提供了很多操作日历字段的方法(YEAR,MONTH,DAY_OF_MONTH,HOUR)。

  3. Calendar类无法直接创建对象,里边有一个静态方法叫getInstance(),该方法返回了Calendar类的子类对象。

  4. static CalendarvgetInstance()使用默认时区和语言环境获得一个日历。

  5. 常用方法:

    1. public int get(int field):返回给定日历字段的值。
    2. public void set(int field, int value):将给定的字段设置为给定值。
    3. public abstract void add(int field, int amount):根据日历规则,为给定的日历字段添加或减去指定的时间量。
    4. public Date getTime():返回一个白哦是此Calendar时间值(从计算机元年到现在的毫秒偏移量)的Date对象。

System类

  1. java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用的方法有:

    1. public static long currentTimeMills();返回以毫秒为单位的当前时间。
    2. public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);将数组中指定的数据拷贝到另一个数组中。

StringBiuder类

  1. StringBiuder即字符串缓冲区,可以提高字符串的操作效率(可以看成一个长度变化的字符串),底层也是一个数组,但是没有被final修饰,可以改变长度。

  2. StringBiuder的构造方法

    1. StringBiuder();构造一个不带任何字符的字符串生成其,其初始值为16个字符。
    2. StringBiuder(String str);构造一个字符串生成器,并初始化为指定的字符串内容。
  3. 常用方法:

    1. public StringBiuder append(...);添加任意类型数据的字符串形式,并返回当前对象自身。
    2. public String toString();将当前StringBiuder对象转换为String对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值