JAVA 语言类的特性(成员、重载、构造方法、静态成员)

一、类的私有成员和公有成员

1、私有成员

     修饰符private    如果在类的声明前加上修饰符private,则无法从该类的外部访问到该类的内部成员,而只能被该类自身访问和修改,而不嗯那个被其他类,包括该类的子类来获取和引用,达到对数据最高级别保护

2、公有成员

     修饰符public  表示该成员可以被其他所有的类缩访问

 

二、方法的重载

   如果同一个类中包含了两个或两个以上方法名相同、方法参数的个数、顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了。如下所示 4 个方法名称都为 show ,但方法的参数有所不同,因此都属于方法的重载:

通过方法的重载,只需一个方法名称,可拥有多个不同功能。

 

二、构造方法

构造方法是一种特殊的方法,是对象被创建时初始化对象的成员的方法。构造方法的名称必须与它所在的类名完全相同。构造方法没有返回值,但在定义的时候,构造方法前不能加修饰符void。

构造方法特点:

(1)方法名与类名相同

(2)没有返回值,但修饰符不能加void

(3)主要作用是对类对象的初始化工作

(4)一般不能显式地直接调用,而是用new来调用

(5)在创建一个类对象的同时,系统自动调用该类的构造方法为新对象初始化

 

public class demo1 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Cylinder volu = new Cylinder(2.5, 5, 3.14); 
        System.out.println("area = "+volu.area());
        System.out.println("volume = "+volu.volume());
    }
}

class Cylinder {
    private double radius;
    private int height;
    private double pi = 3.14;

    public Cylinder(double r, int h, double p) {
        pi = p;
        radius = r;
        height = h;
    }

    double area() {
        return pi * radius * radius;
    }

    double volume() {
        return area() * height;
    }
}
//运行结果
//area = 19.625
//volume = 98.125

2、构造方法的重载

public class demo1 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		Cylinder volu1 = new Cylinder(2.5, 5, 3.14);
		Cylinder volu2 = new Cylinder();
		System.out.println("圆柱1面积 = "+volu1.area());
		System.out.println("圆柱1体积 = "+volu1.volume());
		System.out.println("圆柱2面积 = "+volu2.area());
		System.out.println("圆柱2体积 = "+volu2.volume());
	}
}

class Cylinder {
	private double radius;
	private int height;
	private double pi = 3.14;
	public Cylinder() //无参构造方法
	{
		radius = 1;
		height = 2;
		pi = 3.14;
	}
	//带参构造方法
	public Cylinder(double r, int h, double p) {
		pi = p;
		radius = r;
		height = h;
	}

	double area() {
		return pi * radius * radius;
	}

	double volume() {
		return area() * height;
	}
}
//运行结果:
//圆柱1面积 = 19.625
//圆柱1体积 = 98.125
//圆柱2面积 = 3.14
//圆柱2体积 = 6.28

三、静态成员

static称为静态修饰符。被static修饰的成员被称为静态成员

1、静态变量

静态变量在定义时用static修饰,静态变量在某种程度上与全局变量相似,任何一个类的对象去修改它时,也都是对同一个内存单元进行操作。如果该变量不是私有的,那么就可以在类的外部进行访问而不需要创建类的实例对象,只需要类名就可以使用。使用格式有以下两种:

类名.静态变量名;

对象名.静态变量名;

public class demo1 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        
        Cylinder volu1 = new Cylinder(2.5, 5);        
        System.out.println("圆柱1面积 = "+volu1.area());
        System.out.println("圆柱1体积 = "+volu1.volume());
        volu1.count();
        Cylinder volu2 = new Cylinder(1.0,2);
        System.out.println("圆柱2面积 = "+volu2.area());
        System.out.println("圆柱2体积 = "+volu2.volume());
        volu2.count();
        
    }
}

class Cylinder {
    private double radius;
    private int height;
    private static double pi = 3.14;
    private static int num = 0;
    //带参构造方法
    public Cylinder(double r, int h) {
        radius = r;
        height = h;
        num++;
    }

    double area() {
        return pi * radius * radius;
    }

    double volume() {
        return area() * height;
    }
    public void count()
    {
        System.out.println("创建了"+num+"个对象");
    }
}
//运行结果
//圆柱1面积 = 19.625
//圆柱1体积 = 98.125
//创建了1个对象
//圆柱2面积 = 3.14
//圆柱2体积 = 6.28
//创建了2个对象
静态变量

由于该例中对象的pi值都相同,所以没必要每个对象都保存自己的pi值。静态变量可节省大量内存空间。

注:对于静态变量的使用,建议采用“类名.静态变量名”的形式来访问。

2、静态方法

(1)static方法属于整个类,所以他不能操纵和处理属于某个对象的成员,只能处理属于整个类的成员。即static方法只能访问static成员变量或调用static成员方法。

(2)静态方法中不能使用this和super

(3)调用静态方法格式如下:

类名.静态方法名();   建议

对象名.静态方法名();

2、静态初始化器

类是在第一次被使用的时候才被装载的,而不是程序启动时就装载程序中所有可能要用到的类

posted @ 2015-11-21 19:51  Kevin1207  阅读(475)  评论(0编辑  收藏  举报