zoukankan      html  css  js  c++  java
  • 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、静态初始化器

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

  • 相关阅读:
    Javascript进阶(7)---函数参数
    Django连接mssql(SqlServer)
    ORM查询
    Django-Model操作数据库
    Django去操作已经存在的数据库
    如何设置CentOS 7获取动态及静态IP地址
    nginx代理设置
    Django+Linux+Uwsgi+Nginx项目部署文档
    nginx的安装部署
    Django项目在linux系统中虚拟环境部署
  • 原文地址:https://www.cnblogs.com/Kevin127/p/4983223.html
Copyright © 2011-2022 走看看