类:是对某一事物的抽象描述,通过方法(成员方法)和属性(成员变量)来描述事物。
对象:对象是实际存在的该类事物的个体,因而也称实例。
1、类与对象
创建圆类:
1 package Circle; 2 3 public class Circle { 4 public double Pi=3.1415926; 5 public double radius;//属性 6 public Circle(double radius){//方法 7 this.radius=radius; 8 } 9 public double getRadius(){ 10 return radius; 11 } 12 13 public void updateRadius(double radius){ 14 this.radius=radius; 15 } 16 17 public void getArea(){ 18 System.out.println("圆的面积:"+radius*radius*Pi); 19 } 20 }
创建圆锥类:
1 package Taper; 2 public class Taper { 3 double bottom; 4 double height; 5 public Taper(double bottom,double height){ 6 this.bottom=bottom; 7 this.height=height; 8 } 9 public double getBottom(){ 10 return bottom; 11 } 12 13 public double getBottomR(){ 14 return Math.sqrt(bottom/3.1415926); 15 } 16 17 public double updateBottomR(double BottomR) { 18 bottom=3.1415926*BottomR*BottomR; 19 return bottom; 20 } 21 22 public double getHeight(){ 23 return height; 24 } 25 26 public void updateHeight(double height){ 27 this.height=height; 28 } 29 30 public double volume(){ 31 return bottom*height/3; 32 } 33 34 }
测试类:
1 package Run; 2 import Circle.Circle; 3 import Taper.Taper; 4 public class Test { 5 public static void main(String args[]) { 6 Circle cir=new Circle(2);//创建圆的对象 7 System.out.println("圆的半径为:"+cir.getRadius()); 8 cir.getArea(); 9 cir.updateRadius(3); 10 System.out.println("修改后圆的半径为:"+cir.getRadius()); 11 cir.getArea(); 12 System.out.println("***********************"); 13 Taper tap=new Taper(34.1,21.3);//创建圆锥的对象 14 System.out.println("锥体的底面积为:"+tap.getBottom()); 15 System.out.println("椎体的底面半径为:"+tap.getBottomR()); 16 System.out.println("更改后的椎体体积为:"+tap.updateBottomR(1)); 17 } 18 }
(1)类是一个模板,它描述的是一类对象的行为和方法,例如:定义一个学生类,该类含有属性:学号、姓名、性别,方法:学习。即:类通过方法和属性描述一个学生类。
(2)对象是一个个体,类被实例化后产生一个对象,例如:对学生的属性赋值之后,该学生有学号、姓名、性别,在一般情况下可以确定一个学生。
2、对象的赋值与比较:
public class Compare { public static void main(String[] args) { String str1 = new String("abc"); String str2 = new String("abc");//str1和str2是两个不同的对象,占用不同的内存空间 String str3 = str1;//在栈内存中有相同的内存空间 if (str1 == str2)//==比较的是两个对象的内存地址 System.out.println("str1==str2"); else System.out.println("str1!=str2"); if (str1 == str3) System.out.println("str1==str3"); else System.out.println("str1!=str3"); } }
虽然str1和str2的值相等,但是这是两个不同的对象,在内存中占用不同的空间。