有过一两年Java和Android的项目经验,但做项目时,觉得只是拿来相关知识在用,没有系统地学习过Java。所以想从基础的东西开始重新学习下Java,不足和错误的地方,希望指出。下面一系列的文章都是参考英文资料而来。
一、在学习Java的过程中,我们要时刻有这样的观念:万物皆对象。当你设计你的应用程序的时候,你可以将代码放到类里面,并封装到方法。让我们看一段代码1-1:
public class Main
{
public static void main(String[] str)
{
System.out.println("hello");
}
}
分析代码1-1:启动类Main有一个方法main,打印输出hello。我们可以用另一种方式表示。
二、定义新类及类方法
我们定义一个新类,并在类中定义一个方法,如代码1-2:
public class Welcome
{
private String wel = "hello";
public void sayHello()
{
System.out.println(wel);
}
}
分析代码1-2:我们通过一个类方法实现同样的打印hello的功能。
三、在main方法重新实现打印
重新实现打印的方法如代码1-3所示:
public class Main
{
public static void main(String[] str)
{
//System.out.println("hello");
Welcome obj = new Welcome();
obj.sayHello();
}
}
分析代码1-3:通过构造方法创建Welcome实例,这个实例就是我们所谓的对象。我们通过变量obj引用实例对象,然后对象obj再调用方法打印输出hello。这种方式将具体实现细节封装在方法里,使得代码简单凝练便于重构。(当然这里为了演示,只使用了一条语句,复杂繁多代码就更能体现优点)
四、万物皆对象
Welcome类有一个属性变量wel,有一个方法sayHello。用Main类的main方法创建一个Welcome的实例,通过该实例调用sayHello方法打印输出hello。
这里说的实例其实就是对象,它有方法和属性(对象封装方法和属性)。之所以说万物皆对象就是因为:我们通常都是创建类的实例去执行代码,而代码本身被封装在类里。
五、进一步理解万物皆对象
看代码1-5:
public class Main
{
public static void main(String[] str)
{
//System.out.println("hello");
Welcome obj = new Welcome();
obj.sayHello();
String strA = "hello";
String strB = new String("hello");
char[] chars = {'h','e','l','l','o'};
String strC = new String(chars);
}
}
分析代码1-5:我们生成了三个String对象。一个字符串对象,实际上是多个字符组成的数组,也就是说复杂对象与多个相对简单的对象有关。当我们将万事万物看成对象时,就可以将复杂的事情拆分成更小的多个组成部分,这有利于扩展代码、解决问题。
六、String对象
String类的对象是复杂的对象,规范来讲应该说是java.lang.String类。String类提供了很多的方法,我们简单提两个:
charAt : 获取该字符串在索引处的字符。
concat将指定字符串连接到此字符串的结尾。
七、最终的测试代码
提供一份最终的测试代码1-6给大家,输出结果是:
hello
hello
h
public class Main
{
public static void main(String[] str)
{
//System.out.println("hello");
Welcome obj = new Welcome();
obj.sayHello();
String strA = "hello";
String strB = new String("hello");
char[] chars = {'h','e','l','l','o'};
String strC = new String(chars);
System.out.println(strC);
char myChar = strC.charAt(0);
System.out.println(myChar);
}
}
class Welcome
{
private String wel = "hello";
public void sayHello()
{
System.out.println(wel);
}
}