首先需要一些关于对象的基本知识:
我们在声明一个基本类型值或者对象的时候,建立了两个变量,如:long test1;
String test3;
第一条语句建立了一个保存long型基本类型值的内存空间,第二条建立的是一个保存着指向String类型对象的引用,它并未保存对象的内容,而知识一个地址。这一点类似于C中声明一个字符指针。
在Java中,要初始化对象,需要使用new运算符。比如要初始化上面那个test3。test3 = new String ("It's only a String");
如上,new运算符建立对象后将调用类的构造方法初始化新对象。构造方法是一种特殊的方法,方法名和类名是一样的。
对象在初始化之后才可以使用,这个时候可以通过直接用变量名来引用类的方法。
如test1=test3.length();
一般,我们可以将声明对象引用变量和创建对象一起做:String test3 = new String ("It's only a String");
此外,由于字符串超级常用,所以Java中简化了它的对象初始化写法。我们可以像C一样写:String test3="It's only a String";
此外,还有一个和C类似的地方,在Java中,直接用"="的赋值也基本可以理解为用后者的值覆盖前者的值,因此也就有了所谓的变量别名了...可见Java中巧妙的隐藏起了指针。又让我们能使用到同样便捷的方法。
这里值得一提的是,加入某个对象的所有引用都丢失了。Java环境会把它标识为垃圾,会自动释放,这一免去了我们释放内存的烦恼。
在Java中我们常常要用到类库,有时候也称Java API,Java标准类库被划分成许多包,每个类都属于其中一个包。我们需要了解一下:
包名 | 包含的功能 |
java.lang | 主要含有与语言相关的类。java.lang包由解释程序自动加载,不需要显示说明 |
java.io | 主要含有与输入/输出相关的类,这些类提供了对不同的输入和输出设备读写数据的支持,这些输入和输出设备包括键盘、显示器、打印机、磁盘文件等 |
java.util | 包括许多具有特定功能的类,有日期、向量、哈希表、堆栈等,其中Date类支持与时间有关的操作 |
java.awt | 提供绘图和建立图形用户界面的类 AWT表示 Abstract Windowing Too |
java.swing | 扩展的AWT包 |
java.net | 含有与网络操作相关的类,如TCP Scokets、URL等工具。 |
java.applet | 含有控制HTML文档格式、应用程序中的声音等资源的类,其中Applet类是用来创建包含于HTML的Applet必不可少的类。 |
java.beans | 定义了应用程序编程接口(API),Java Beans是Java应用程序环境的中性平台组件结构。 |
java.math | 提供了大量的计算用的类 |
java.rmi | 提供用于建立可以跨多个计算机的分布式程序, RMI表示Remote Method Invocation |
java.security | 执行安全限制 |
java.sql | 提供与数据库交互的类 |
java.text | 提供格式化的文本输出 |
java.xml.parers | 用于处理XML文档 |
在很多情况下,当我们要同时处理基本数据类型和对象的时候很容易出问题,这个时候 封装类(wrapper)就相当有用,其实所谓的封装类就是基本数据类型的类版本。每种类型对于相应的封装类。
如表:
基本数据类型 | 对应的封装类 |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
void | Void |
当涉及到基本数据类型与相应的封装类之间的赋值的时候java会自动包装和自动拆包。
-------------------------------------------
接下来是应该要掌握的一些基本类的用法:
String类:
方法原型 | 说明 |
String(String str) | 构造方法,用于建立一个新String对象,并用参数str的字符串来初始化它 |
char chartAt(int index) | 返回指定索引位置的字符 |
int compartTo(String str) | 返回一个整型值,正、0、负来表示本对象的字符串按字典顺序位置先于、等于或后于str对象的字符串 |
String concat (String str) | 返回一个由本对象字符串和str拼接后的字符串 |
boolean equals(String str) | 和str的字符串比较是否相同 |
boolean equalsIgnoreCase(String str) | 上一个方法的不区分大小写版 |
int length() | 返回本字符串包含的字符个数 |
String replace(char oldChar,char newChar) | 将本对象字符串中所以和oldChar一样的子串用newChar替换 |
String substring(int offset,int endIndex) | 将开始位置偏移offset个取子串返回 |
Math类(java.lang):
方法原型 | 说明 |
static int abs(int num) | 返回num的绝对值 |
static double ceil(double num) | 返回不小于num的最小整数(返回值为double型) |
static double floor(double num) | 返回不大于num的最大整数(返回值为double型) |
static int max(int num1,int num2) | 求两个整数中最大数(另有针对long、float、double的方法) |
static int min(int num1,int num2) | 求两个整数中最小数(另有针对long、float、double的方法) |
static double random() | 取[0.0 , 1,0)之间的随机数 |
static double sqrt(double a) | 求平方根 |
static double sin(double angle) | 求d的sin值(另有求其他三角函数的方法如cos,tan,asin, acos, atan)angle为弧度。 |
static double log(double x) | 求自然对数 |
static double exp(double x) | 求e的x次幂 |
static double pow(double a, double b) | 求a的b次幂 |
值得注意的是,Math类的所有方法都是静态方法,(static方法,又称类方法),也就是说可以通过类名直接调用方法而无须先初始化对象。比如:
double test1,test3,test5;
test1=Math.sqrt(2);
test3=Math.sin(0);
test5=Math.random();
Random类(java.util):
方法原型 | 说明 |
Random() | 构造方法,创建一个新的伪随机数生成器。 |
float nextFloat() | 返回一个分布在[0.0 , 1.0)之间的浮点随机数 |
int nextInt() | 返回一个整形随机数,取值分布在int区间,包括正负 |
int nextInt(int num) | 返回一个整形随机数取值分布在[0 , num-1]之间 |
例如:
Random test= new Random();
int te1;
float te2;
te1=test.nextInt(100);
te2=test.nextFloat();
没有评论:
发表评论