JAVA 的类(外部类)有 2 种访问权限: public、default。
而方法和变量有 4 种:public、default、protected、private。
其中默认访问权限和 protected 很相似,有着细微的差别。
public 意味着任何地方的其他类都能访问。
default 则是同一个包的类可以访问。
protected 表示同一个包的类可以访问,其他的包的该类的子类也可以访问。
private 表示只有自己类能访问。
修饰符:abstract、static、final
abstract: 表示是抽象类。 使用对象:类、接口、方法
static: 可以当做普通类使用,而不用先实例化一个外部类。(用他修饰后,就成了静态内部类了)。 使用对象:类、变量、方法、初始化函数(注意:修饰类时只能修饰 内部类 )
final: 表示类不可以被继承。 使用对象:类、变量、方法
String 类是不可改变的解析,例如:
String s = "Google";
System.out.println("s = " + s);
s = "Runoob";
System.out.println("s = " + s);
输出结果为:
Runoob
从结果上看是改变了,但为什么门说String对象是不可变的呢?
原因在于实例中的 s 只是一个 String 对象的引用,并不是对象本身,当执行 s = "Runoob"; 创建了一个新的对象 "Runoob",而原来的 "Google" 还存在于内存中。
格式化数
1.对整数进行格式化:%[index$][标识][最小宽度]转换方式
格式化字符串由4部分组成,特殊的格式常以%index$开头,index从1开始取值,表示将第index个参数拿进来进行格式化,[最小宽度]的含义也很好理解,就是最终该整数转化的字符串最少包含多少位数字。剩下2个部分的含义:
标识:
转换方式:
d-十进制 o-八进制 x或X-十六进制
上面的说明过于枯燥,我们来看几个具体的例子。需要特别注意的一点是:大部分标识字符可以同时使用。
System.out.println(String.format("%1$,09d", -3123));
System.out.println(String.format("%1$9d", -31));
System.out.println(String.format("%1$-9d", -31));
System.out.println(String.format("%1$(9d", -31));
System.out.println(String.format("%1$#9x", 5689));
//结果为:
//-0003,123
// -31
//-31
// (31)
// 0x1639
2.对浮点数进行格式化:%[index$][标识][最少宽度][.精度]转换方式
我们可以看到,浮点数的转换多了一个"精度"选项,可以控制小数点后面的位数。
标识:
转换方式:
3.对字符进行格式化:
对字符进行格式化是非常简单的,c表示字符,标识中'-'表示左对齐,其他就没什么了。