第三章 类与对象
3.1 对象引用
基本变量保存的是数据,而对象变量保存的是该对象的地址,即相当于一个指针
别名:多个引用变量可以引用同一个对象,变量互为别名,均可操作对象的数据;
3.2 String类
String类中的一些方法:
char charAt(int index)返回指定索引处的那个字符
int compareTo(String str)
返回正值、0或者负值,表示字典中字符串的先后顺序
(附:
1.当两个比较的字符串是英文且长度不等时,
1)长度短的与长度长的字符一样,则返回的结果是两个长度相减的值
2)长度不一样且前几个字符也不一样,从第一位开始找,当找到不一样的字符时,则返回的值是这两个字符比较的值
2.当两个比较的字符串是英文且长度相等时,
1)一个字符
2)多个字符,第一个字符不同则直接比较第一个字符
3)多个字符,第一个字符相同则直接比较第二个字符,以此类推)
String concat(String str)返回拼接后的新字符串
boolean equals(String str)如果相同,返回true(区分大小写)
boolean equalsIgnoreCase(String str)如果相同,返回true(不区分大小写)
int length()返回字符个数(包括空格)
String replace(char oldChar,char newChar)
String substring(int offset,int endIndex)返回字符串由索引offset开始,到endIndex-1结束
String toLowerCase()
String toUppercase()
3.3 import声明
import java.util.*;代表引用java.util包中的所有类
java.lang是最基本的包,省略不写
3.4Random类
该类产生伪随机数,伪随机数通过复杂的计算来模拟产生
常用方法:
float nextFloat()返回一个分布在【0.0,1.0)区间的浮点随机数
int nextInt()返回所有整数,包括负数
int nextInt(int num)返回随机整型数,范围为0~(num-1)
3.5Math类
Math类的方法为静态方法(类方法),无需创建对象,可直接通过类名调用方法
常用方法:
static int abs(int num)求绝对值
static double acos(double num)
static double cos(double num)
static double ceil(double num)求上限值,该值大于或等于num的最小整数值
static double floor(double num)求下限值,该值小于或等于num最大整数值
static double exp(double power)求e的多少次方
static double pow(double num,double power)求num的power次方
static double sqrt(double num)求平方根值
3.6包装器类的创建和使用
对于每一种基本数据类型,在Java类库里都有对应的包装器类,Integer类代表一个简单的整型值。如:Integer ageObj = new Integer(40);其中ageObj将作为对象代表整型数值40,这样的做法可使得其用于需要以对象表示基本类型数据的场合
byte-Byte short-Short int-Integer long-Long float-Float double-Double char-Character boolean-Boolean void-Void
第四章 编写类
4.1类的分析
A a=new A();
A为类名,a为对象名,A()为类的构造方法;
构造方法是一种特殊方法,方法名必须与类名相同,用new创造新的类的实例时,将调用类的构造方法,当然,一个类里面也可以没有构造方法,编译器会自动生成一个空的构造器,但若只要程序员自己写了一个构造器,那么编译器不再自动产生新的构造器。
eg.A(int a){}; A(String a){};那么再次new实例时,A a=new A();则是非法的,因为类中无空构造器,括号里要么为int类型,要么为String类型,同时这个例子也说明了类的构造方法可以重载。值得注意的是构造方法没有返回值,也不可以用void来修饰。
方法中定义的变量必须初始化,且只在方法内存在,类中的变量为成员变量,在整个类中生效,成员变量可以不初始化,这样的话,变量的初始值为0或者null。
类的数据和方法称为类的成员。
toString方法:每次将对象传递给print和println方法时,将调用toString方法,以使得对象以字符串形式输出,因此对于大多数类来说,最好都定义一个toString方法。
4.2封装
封装:使得类之外的代码难于甚至不能访问和修改该类内部声明的变量,Java使用修饰符实现封装,public会破坏对象的封装,private使得对象只能从类的内部访问。UML类图中成员名前加“+"表示public可见性,加“-”表示private可见性
4.3访问器和修改器
访问器方法名称通常为getX,通常实例变量名的第一个字母大写 eg.getHight
修改器为setX