03java基础api2

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39823114/article/details/78565561

一、Random类的使用(重点)

(1)产生随机数的类
(2)掌握内容
A:构造方法
  Random() 创建一个新的随机数生成器。 
  Random(long seed) 使用单个 long 种子创建一个新的随机数生成器。
B:成员方法
  int nextInt() 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。 
  int nextInt(int n) 返回一个伪随机数,它是取自此随机数生成器序列的、
 在 0(包括)和指定值(不包括)之间均匀分布的 int 值。


二、Runtime类:

(1)每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。
  可以通过 getRuntime 方法获取当前运行时。 应用程序不能创建自己的 Runtime 类实例。
(2)该类没有构造函数,也就是它不能直接创建对象,但是它里里面的方法又不是静态的
  ,故它一定有一个方法返回本类对象
(3)故该类是单例设计模式,保证在内存中只有一个对象
(4)方法摘要:
Process exec(String command) 在单独的进程中执行指定的字符串命令
void gc() 运行垃圾回收器。
static Runtime getRuntime() 返回与当前 Java 应用程序相关的运行时对象
void exit(int status) 通过启动虚拟机的关闭序列,终止当前正在运行的 Java 虚拟机

三、Date类:

        (1)Date接口表示特定的瞬间,精确到毫秒
(2)构造方法
Date() 分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
Date(long date) 分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,
即1970年1月1日00:00:00GMT)以来的指定毫秒数。
(3)方法摘要:
int compareTo(Date anotherDate) 比较两个日期的顺序。          
boolean equals(Object obj) 比较两个日期的相等性。

              Date date= new Date();
		 System.out.println(date);
		 SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd hh:mm");//	格式化
		 String d=sf.format(date);

四、Calendar:

(1)直接已知子类: GregorianCalendar 
(2)构造方法:
protected  Calendar() 构造一个带有默认时区和语言环境的 Calendar。         
protected  Calendar(TimeZone zone, Locale aLocale)  构造一个带有指定时区和语言环境的 Calendar。         
(3)方法摘要:
static Calendar getInstance() 使用默认时区和语言环境获得一个日历。

 SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd hh:mm");
		 Calendar c=Calendar.getInstance();
		  Date d1=c.getTime();
		  
		  System.out.println(sf.format(d1));

五、内部类(次重点)


(1)把一个类定义在某个类中的,这个类就被称为内部类,内置类,嵌套类。
(2)访问特点:
A:内部类可以直接访问外部类中的成员,因为内部类持有外部类的引用,
 格式为:外部类名.this
B:外部类要想访问内部类的成员,必须创建对象访问。
(3)内部类的访问格式:
A:当内部类定义在外部类的成员位置,而且非私有,则可以在其他外部类中直接建立内部类对象
 格式:外部类名.内部类名  变量名 = new 外部类对象.内部类对象
如:Outer.Inner in = new Outer().new Inner()
B:当内部类在外部类成员位置,且被static修饰时
**外部其他类可直接访问静态内部类的非静态成员
 格式:new 外部类名.内部类名().内部类成员
 如:new Outer.Inner().function();
**外部其他类可直接访问静态内部类的静态成员
 格式:new 外部类名.内部类名.内部类成员
 如:new Outer.Inner.function();
(4)什么使用时候内部类呢?
假如有A类和B类,A类想直接访问B类的成员,B类访问A类成员的时候,
需要创建A类对象进行访问,这个时候,就可以把A类定义为B类的内部类。
(5)内部类的位置
A:成员位置
**可以被private修饰(Body,Heart)
**可以被static修饰。(它访问的外部类的成员必须是静态的)
B:局部位置
**可以直接访问外部类中的成员,因为还持有外部类的持用
也可以直接访问局部成员,但是局部成员要用final修饰。 
注意:局部内部类不能用private和static修饰
(6)通过class文件我们就可以区分是否带有内部类,以及内部类的位置
Outer$Inner:成员内部类
Outer$1Inner:局部内部类


六、匿名内部类(局部内部类的简写) (重点)
(1)前提:继承一个类或者实现一个接口
(注意不要弄混匿名内部类的前提和多态的前提)
(2)格式:
new 父类名或者接口名()
{
重写父类方法或者实现接口中的方法。
也可以自定义其他方法。
};
(3)什么时候定义匿名内部类?
匿名内部类只是为了简化书写,匿名内部类有局限,通常定义匿名内部类时,该类方法不超过3个
(4)匿名内部类的好处和弊端:
好处:简化代码书写
弊端:
不能直接调用自己的特有方法
不能执行强转换动作
如果该类里面方法较多,不允许使用匿名内部类



猜你喜欢

转载自blog.csdn.net/qq_39823114/article/details/78565561