对象的创建
1:必须使用new作为关键字创建对象。
2:使用对象引用.成员变量或来引用对象的成员变量。
3:使用对象引用.方法(参数列表来调用对象的方法)。
4:同一类的每个对象由不同的成员变量存储空间。
5:同一类的每个对象共享该类的方法。
6:非静态方法是针对每个对象进行调用。(方法前无static时,调用该方法时一定要先new一个对象才能调用)
实例1:
public class CreateObject{
public CreateObject(){ //构造方法
System.out.println("创建对象");
}
public static void main(String args[]){ //主方法
new CreateObject(); //构建对象
}
}
运行之后,控制台打印 创建对象(创建对象的同时自动调用构造方法中的代码。)
实例2:
public class TransferProperty{
int i = 47; //定义成员变量。
public void call(){ //定义成员方法。
System.out.println("调用call()方法")
for(i = 0;i<3;i++){
System.out.print(i + " ");
if(i == 2){
System.out.println("\n");
}
}
}
public TransferProperty(){ //定义构造方法。
}
public static void main(String[] args){
TransferProperty t1 = new TransferProperty(); //创建一个对象。
TransferProperty t2 = new TransferProperty(); //创建另一个对象。
t2.i = 60; 将类成员变量赋值为60;
//使用第一个对象调用类成员变量-
System.out.println("第一个实例对象调用变量 i 的结果:" + t1.i++);
t1.call(); 使用第一个对象调用类成员方法。
//使用第二个对象调试类成员变量。
System.out,println("第二个实例对象调用变量 i 的结果:" + t2.i);
t2.call(); 使用第二个对象调用类成员方法。
}
}
输出结果:
第一个实例对象调用变量 i 的结果:47
调用call()方法
0 1 2
第二个实例对象调用变量 i 的结果:60
调用call()方法
0 1 2
实例3
class Point{ //定义一个点类
private double x; //两个成员变量:x,y
private double y;
Point(double x1, double y1){ //构造方法,把x1,y1赋给x,y
x = x1;
y = y1;
}
public double getX(){ return x ;}
public double getY(){ return y ;}
public void setX(double i){ x = i;}
public void setY(double i){ y = i;}
}
class circle{
private Point o; //复用,圆心是一个点,直接使用点对象
private double radius; //半径
Circle(Point p, double r){
o = p;
radius = r;
}
Circle(double r){ //重载
o = new Point(0.0 0.0);
radius = r;
}
boolean contains(Point p){
double x = p.getX() - o.getX();
double y = p.getY() - o.getY();
if(x*x + y*y > radius * radius) return false;
esle return ture;
}
public void setO( double x, double y){
o.setX(x);
o.setY(y);
}
public Point getO(){ return o ; } //拿到圆心O的坐标。
public double getRadius() { return radius ; }
public void setRadius( double r ) { radius = r ;}
public doule area() {
return 3.14* radius*radius;
}
}