最近在看JAVA教学的视频,觉得老师讲的很好,同时借用源代码还有笔记来撰写本系列博客,记录自己的学习内容,同时也供看到的人学习。
开始第九篇啦~
本篇的第一个内容理解一下即可——JAVA的垃圾回收机制:
C++是程序员自己回收的,这种做法对所有开发者的要求都很高,不适用于大规模多人合作的软件。而JAVA与其相比则对程序员本身的变成习惯并没有多么高的要求,更加“人性化”一些
本篇主要介绍的第二个内容是类里面非常重要但又可有可无的一个内容———构造方法,学过C++的童鞋可能知道析构函数与构造函数,JAVA的构造函数最显著的特点也是像前两者一样体现在名字上,那就是构造方法的名字必须与类名完全相同。下面是一些具体的概念和要求:
下面是一道例题:
示例:定义一个Point类用来表示三维空间的点(有三个坐标)。要求如下:可以生成具有特定坐标的点对象;提供可以设置三个坐标的方法;提供可以计算该“点”距另外点距离的方法。
public class Point {
double x,y,z;
//通过构造方法初始化对象的属性
public Point(double x,double y, double z){
x =x;
y = y;
z = z;
}
public void setX(double _x){
x = _x;
}
public void setY(double _y){
y = _y;
}
public void setZ(double _z){
z = _z;
}
public double distance(Point p){
double result = Math.sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)+(z-p.z)*(z-p.z));
return result;
}
public static void main(String[] args) {
Point p = new Point(3,4,8);
Point p2 = new Point(200,40,80);
p.setX(10);
System.out.println(p.x);
System.out.println(p.distance(p2));
}
}最后介绍的内容是方法的重载(overload),这是JAVA的一个很广泛的应用,方法重载是指方法的签名(方法名+返回值类型)相同但是形式参数的类型、个数、顺序中的一个或者多个不同的若干个方法
:
最后看一看重载的典型例子:
public class TestOverload {
public int add(int a, int b){
return a+b;
}
public static void main(String[] args) {
MyMath m = new MyMath();
int result = m.add(4.2,8);
System.out.println(result);
}
}
class MyMath {
int a;
int b;
public MyMath(){
}
public MyMath(int a){
this.a = a;
}
public MyMath(int b, int a){
this.b = b;
this.a = a;
}
public int add(int b, double a){
return (int)(a+b);
}
public int add(double a, int b){
return (int)(a+b);
}
public int add(int a, int b){
return a+b;
}
public int add(int a, int b,int c){
return a+b+c;
}
}