Final
final用于修饰类、属性和方法:
1.被final修饰的类不可以被继承;
2.被final修饰的方法不可以被重写;
3.被final修饰的变量不可以被改变,是常量。
权限
访问权限:
private:类内部可见。
default:类内部、包内部可见;无论是方法,还是属性,不写修饰符,就是这个权限。
protected:类内部、包内部、子类可见。
public:类内部、包内部、子类内部、外部包可见。
内部类
将一个类定义在另一个类里面,那么里面的那个类就称为内部类,另一个则被称为外部类。
class Person { //外部类 class Student { //内部类 } }
定义在类中方法外的类称之为成员内部类。
内部类可以直接访问外部类的成员,包括私有成员;
外部类要访问内部类的成员,必须建立内部类对象:
Person.Student pst = new Person().new Student();
引用类型有:
数组(派生于System.Array)
用户用定义的以下类型:
类:class(派生于System.Object);
接口:interface;
委托:delegate(派生于System.Delegate);
object(System.Object的别名);
字符串:string(System.String的别名)。
引用类型与值类型的异同:
引用类型与值类型相同的是,结构体也可以实现接口;
引用类型可以派生出新的类型,而值类型不能;
引用类型可以包含null值,值类型不能;
引用类型变量的赋值只复制对对象的引用,而不复制对象本身。而将一个值类型变量赋值给另一个值类型变量时,将复制包含的值。
Scanner
Scanner是Java中的一个类,可以实现Scanner类的对象,获取用户的输入。
Scanner sc = new Scanner(System.in);
Random
Random是随机的意思。
Random类是java.until下的一个根据随机算法的起源数字进行一些变化,从而得到随机数字的方法。随机算法的起源数字被成为种子数(seed)。(虽然Random类产生的数字是随机的,但在相同种子数(seed)下的相同次数产生的随机数是相同的(伪随机)。)
Random中共有两种构造方法:
public Random() public Random(long seed)
Random的一般用法:
public static void main(String[] args){ Random r = new Random(); r.nextInt(); }
ArrayList
ArrayList 类是一个可以动态修改的数组,没有固定大小。
一般用法:
引入ArrayList类
import java.util.ArrayList;
实例化对象
ArrayList<String> list = new ArrayList<>();
不重复点名程序代码实例如下:
package com.lx; import java.util.*; public class A { public static void main(String[] args) { List<String> list = Arrays.asList("季唯", "季暖", "季晓", "季晓寒", "季晨", "季礼"); ArrayList<String> names = new ArrayList<>(list); Random random = new Random(); Scanner scanner = new Scanner(System.in); while (true) { if (names.size() == 0) { System.out.println("已经完成所有的抽查"); break; } System.out.println("确认点名请输入a"); String input = scanner.next(); if (input.equals("a") || input.equals("a")) { int index = random.nextInt(names.size()); System.out.println(names.get(index)); names.remove(index); } else { System.out.println("本次抽查已结束!"); break; } } } }
包装类
java中有8种基本数据类型,每一种数据类型都对应有一种包装类:
基本数据类型:byte,short,int,long,float,double,char,boolean;
包装类:Byte,Short,Integer,Long,Float,Double,Character,Boolean;
将java的基本数据类型转换为包装类,这个过程就叫做装箱;
int a = 3; Integer integer = Integer.valueOf(a);
将包装类转化为基本数据类型,这个过程就叫做拆箱。
int a = Integer.parseInt("3");
自动装箱:
int a = 3; Integer integer = a;
自动拆箱:
int a = Integer.valueOf(3);
字符串与基本数据类型的相互转换
int a = 3; String s1 = Integer.toString(a); String s2 = "10"; int b = Integer.parseInt(s2); int c = 4; String s3 = String.valueOf(c); String s4 = "20"; int d = Integer.valueOf(s4); int e = 5; String s5 = e + "";