这周总结一下新学到的知识。
1.图形的绘制
Java中绘制基本图形,可以使用Java类库中的Graphics类,此类位于java.awt包中。在我们自己的java程序文件中,要使用Graphics类就需要使用import java.awt.Graphics语句将Graphics类导入进来。
在此梳理一下绘制的大体步骤。
1)给DrawSee类添加成员变量,用来描述游戏区域的特征。
对DrawSee类来说,此类主要完成的功能是与用户交互,即显示游戏区域,显示数字,响应用户鼠标点击,显示用户鼠标点击后的结果等。
2)绘制区域。
以画笑脸为例:
import java.awt.Canvas;
import java.awt.Frame;
import java.awt.Graphics;
public class Hello2 extends Frame {
public void paint(Graphics g) {
g.drawString("forever happy!", 50, 30);
g.drawOval(60, 60, 200, 200);
g.fillOval(90, 120, 50, 20);
g.fillOval(190, 120, 50, 20);
g.drawLine(165, 125, 165, 175);
g.drawLine(165, 175, 150, 160);
g.drawArc(110, 130, 95, 95, 0, -180);
}
public static void main(String arg[]){
Frame x = new Hello2();
x.setSize(300, 300);
x.setVisible(true);
}
}
2.java string类
创建字符串
String str = "Runoob";
在代码中遇到字符串常量时,这里的值是 “Runoob”,编译器会使用该值创建一个 String 对象。
和其它对象一样,可以使用关键字和构造方法来创建 String 对象。
用构造函数创建字符串:
String str2=new String("Runoob");
String 创建的字符串存储在公共池中,而 new 创建的字符串对象在堆上:
String s1 = "Runoob";
String s2 = "Runoob";
String s3 = s1;
String s4 = new String("Runoob");
String s5 = new String("Runoob");
创建格式化字符串
我们知道输出格式化数字可以使用 printf() 和 format() 方法。
String 类使用静态方法 format() 返回一个String 对象而不是 PrintStream 对象。
String 类的静态方法 format() 能用来创建可复用的格式化字符串,而不仅仅是用于一次打印输出。
System.out.printf("浮点型变量的值为 " +
"%f, 整型变量的值为 " +
" %d, 字符串变量的值为 " +
"is %s", floatVar, intVar, stringVar);
3.Java ArrayList
ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。ArrayList 继承了 AbstractList ,并实现了 List 接口。
用例题展示一下他的用法:
创建学生类,存储信息并遍历
public class Student {
private String name;
private int age;
public Student(){};
public Student(String name,int age){
this.name=name;
this.age=age;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age=age;
}
public int getAge(){
return age;
}
}
import java.util.ArrayList;
public class ArrayTest {
public static void main(String[] args){
ArrayList array = new ArrayList<>();
Student s1=new Student("zhang",7);
Student s2=new Student("hu",4);
Student s3=new Student("li",8);
array.add(s1);
array.add(s2);
array.add(s3);
for(int i=0;i
Student s=array.get(i);
System.out.println(s.getName()+" "+s.getAge());
}
}
}
4.java与c++的一点对比
学了两周java,深刻感受到了他与c++的区别所在。
这里简单写一下自己领悟到的几点。
1)Java是一种更纯粹的面向对象程序设计语言。在Java中,一切都被视为对象。
2)C++创建对象,使用完后,需要调用delete方法将其销毁;而Java有垃圾回收机制,用来监视new出来的所有对象,然后释放内存空间。
3) C++中有指针,Java中没有,但是有引用。
4)C++支持多继承,Java中类都是单继承的。但是继承都有传递性,同时Java中的接口是多继承,类对接口的实现也是多实现。
以上为这周的收获,下周会继续深入java的学习,再接再厉。



