zoukankan      html  css  js  c++  java
  • [Training Video

    Static and non-Static : 

    非静态方法(不带static)可以访问静态变量和方法(带static),但是反过来就不行。

    类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问

    非静态成员(变量和方法)属于类的对象,只有在类的对象产生(创建实例)的时候才会分配内存,然后通过类的对象去访问

    在一个类的静态成员中去访问非静态成员之所以会出错是因为在类的非静态成员不存在的时候静态成员就已经存在了,访问一个内存中不存在的东西会出错。

     静态变量和方法既可以用类来调用,也可以用对象来调用,但不建议用对象调用

    Code :

    public class Car {
    	
    		// GLOBAL VARIABLE
    		String mod;
    		int price;
    		static int wheels = 4;
    
    		// static functions can only access static stuff
    		public static void main(String[] args) {
    			Car c1 = new Car();
    			c1.mod = "Merc";
    			c1.price = 8909809;
    			c1.start();
    			c1.accel();
    			
    			Car c2 = new Car();
    			c2.mod = "Maruti";
    			c2.price = 8909809;
    			c2.start();
    			c2.accel();
    			
    			System.out.println(c1.mod);
    			System.out.println(c2.mod);
    			
    			// static
    			System.out.println(wheels);
    			System.out.println(Car.wheels);
    			
    			c1.wheels = 8;
    			System.out.println(wheels);
    			System.out.println(Car.wheels);
    			System.out.println(c2.wheels);
    			
    			fillGas(100);
    			Car.fillGas(200);
    			c1.fillGas(900);
    		}
    		
    		public void start(){
    			System.out.println(mod + " starting");
    		}
    		
    		public void accel(){
    			System.out.println(mod + " acc");
    		}
    		
    		public static void fillGas(int quantity){
    			
    		}
    }
    

    Result :

    Merc starting
    Merc acc
    Maruti starting
    Maruti acc
    Merc
    Maruti
    4
    4
    8
    8
    8
    

    Code :

    public class Car {
    		
    		String mod;
    	
    		public static void main(String[] args) {
    			Car a = new Car();
    			Car b = new Car();
    			Car c = new Car();
    			
    			a.mod = "A";
    			b.mod = "B";
    			c.mod = "C";
    			
    			System.out.println(a.mod);
    			System.out.println(b.mod);
    			System.out.println(c.mod);
    			
    			a=b;
    			b=c;
    			c=a;
    			
    			System.out.println(a.mod);
    			System.out.println(b.mod);
    			System.out.println(c.mod);
    		}
    }
    

    Result :

    A
    B
    C
    B
    C
    B
    
  • 相关阅读:
    安装Redis
    IntelliJ IDEA 2016.1 创建Maven Java Web项目(图解)
    MongoDB入门
    Oracler的锁概念
    Oracle 数据类型
    《锋利的jQuery》随笔(一)
    IList<T>之 First【学习笔记之Linq】
    入驻新园子
    使用nodejs下载风景壁纸
    nodejs爬取博客园的博文
  • 原文地址:https://www.cnblogs.com/MasterMonkInTemple/p/5589883.html
Copyright © 2011-2022 走看看