东理静态成员使用举例SHANDONG UNIVERSITY OFTECHNOLOGYpublicclassCircleDemoclassCirclefYprivatedoubleradius;l/半径publicstaticvoidmain(Stringargs)public static doublePl=3.14159;publicCircle()I无参数构造方法Circlec1=newCircle(1.0);ySystem.out.println("圆半径为:"+c1.getRadius();this(0.0);System.out.println("圆周长为:"+c1.getLength(0);1System.out.println("圆面积为:"+c1.getArea())System.out.println("静态变量:"+Circle.Pl);publicCircle(doubleradius)I有参构造方法(this.radius=radius;1人publicdoublegetRadius()注意事项return radius;1public void setRadius(double radius)静态方法不能直接使用非静态this.radius=radius;}域变量和非静态方法;public double getLengtho)return Pl*2*radius;}public double getArea()静态方法只能直接调用静态方returnPl*radius*radius;法和静态变量。(也可创建对象后,通过对象调用)
专业 专注 创新 静态成员使用举例 class Circle{ private double radius; //半径 public static double PI=3.14159; public Circle() //无参数构造方法 { this(0.0); } public Circle(double radius) //有参构造方法 { this.radius=radius; } public double getRadius() { return radius; } public void setRadius(double radius) { this.radius=radius; } public double getLength() { return PI*2*radius; } public double getArea() { return PI*radius*radius; } } public class CircleDemo { public static void main(String args[]) { Circle c1=new Circle(1.0); System.out.println("圆半径为:"+c1.getRadius()); System.out.println("圆周长为:"+c1.getLength()); System.out.println("圆面积为:"+c1.getArea()); System.out.println("静态变量:"+Circle.PI); } } 注意事项 • 静态方法不能直接使用非静态 域变量和非静态方法; • 静态方法只能直接调用静态方 法和静态变量。(也可创建对 象后,通过对象调用)
东理功客类生成实例(对象)的再解释SHANDONGUNIVERSITY OF TECHNOLOGY程序执行过程中,类字节码只加载一次(第一次定义变量时之后常驻内存),程序执行完毕从内存中卸载。类字节码加载静态变量分配空间,赋值静态方法分配入口地址执行静态代码块new操作一一创建对象第一次执行,可能引发类字节码加载(如未加载)类的加载有多种方式用该类的字节码生成一个对象,为对象分配内存为实例变量分配内存并赋初值:执行该类的构造方法(可能再为实例变量赋值);实例方法分配入口地址(第一次)专业专注创新
专业 专注 创新 类生成实例(对象)的再解释 程序执行过程中,类字节码只加载一次(第一次定义变量时, 之后常驻内存),程序执行完毕从内存中卸载。 类字节码加载 静态变量分配空间,赋值 静态方法分配入口地址 执行静态代码块 new操作——创建对象 第一次执行,可能引发类字节码加载(如未加载)类的加载有多种方式 用该类的字节码生成一个对象,为对象分配内存 为实例变量分配内存并赋初值; 执行该类的构造方法(可能再为实例变量赋值); 实例方法分配入口地址(第一次)
东理2、对象的组合SHANDONG UNIVERSITY OFTECHNOLOGY成员变量可以是JAVA允许的任何数据类型ClassA类可以把ClassB类对象成员变量★对象之间的关系:has-a专业专注创新
专业 专注 创新 2、对象的组合 成员变量可以是JAVA允许的任何数据类型 ClassA类可以把ClassB类对象 成员变量 对象之间的关系:has-a
东理功—举例对象的组合SHANDONGUNIVERSITYOFTECHNOLOGYJRectanglejavaXDCubicjavaDCubicTestjavaDCubicjava XDCubicTest.javaDRectanglejavapublicclass Rectanglefpublic class Cubiafint w;Rectangle rect;int h;int z;Cpublic int length() (public int volumn()(return 2*(w+h):return rect.area() * z;子子1-public int area() (D RectanglejavaDcubicjavaDCubicTestjavaXreturn w * h;7public class cubicTestpublic static void main(string[l args) (7cubic c=new cubic();Rectangle rect=new Rectangle();rect.w=1o;rect.h=3;立方体对象cc.rect=rect;包含一个长方形对象rectC.Z=2;System.out.println(c.volumn());7
专业 专注 创新 对象的组合——举例 立方体对象c 包含一个长方形对象rect