• Java入门 之 类和对象(三)


    1. 类

      1.1 类的一般形式

      1.2 方法的重载(overloading)

    2. 对象

      2.1 对象的创建和使用

      2.2 构造函数

    3. 关键字 static

      3.1 静态变量

        3.1.1 普通的变量都是属于某个对象的,有一个对象就有一个这个数据的副本。静态变量则是整个类只有一个变量,它跟对象是没有关系的,跟它相关联的是类而不是对象。

    package chap5;
    
    public class StaticDemo1 {
    	
    	// 声明普通变量
    	int commanint = 0;
    	// 声明静态变量
    	static int staticint = 0;
    	
    	StaticDemo1(int x){
    		commanint = x;
    	}
    	
    	public static void main(String[] args) {
    		// 创建两个对象
    		StaticDemo1 s1 = new StaticDemo1(1);
    		StaticDemo1 s2 = new StaticDemo1(2);
    		// 比较静态变量和普通变量
    		System.out.println("s1.commanint = " + s1.commanint);
    		System.out.println("s2.commanint = " + s2.commanint);
    		System.out.println("s1.staticint = " + s1.staticint);
    		System.out.println("s2.staticint = " + s2.staticint);
    		
    		// 改变s1普通变量的值,仅影响s1的普通变量
    		s1.commanint++;
    		System.out.println("
    change commanint value:");
    		System.out.println("s1.commanint = " + s1.commanint);
    		System.out.println("s2.commanint = " + s2.commanint);
    		System.out.println("s1.staticint = " + s1.staticint);
    		System.out.println("s2.staticint = " + s2.staticint);
    		
    		// 通过s1改变静态变量的值,静态变量的值全部改变
    		s1.staticint++;
    		System.out.println("
    change staticint by changing s1");
    		System.out.println("s1.staticint = " + s1.staticint);
    		System.out.println("s2.staticint = " + s2.staticint);
    	}
    }
    

        3.1.2 上例中通过一个对象改变静态变量的值,可以看到两个对象的值都改变了。实际上上例中访问静态变量的方法是不规范的,规范的方法是使用“类名.变量名”来访问。

    package chap5;
    
    public class Student 
    {
    	int id = 0;
    	static int studentNum = 0;
    	Student(int x)
    	{
    		id = x;
    		studentNum ++;
    	}
    	public static void main(String args[])
    	{
    		Student s1 = new Student(1000);
    		Student s2 = new Student(1001);
    		Student s3 = new Student(1002);
    		Student s4 = new Student(1003);
    		System.out.println("s1 student number:" + s1.id);
    		System.out.println("s2 student number:" + s2.id);
    		System.out.println("s3 student number:" + s3.id);
    		System.out.println("s4 student number:" + s4.id);
    		// 使用“类名.变量名”来访问静态变量
    		System.out.println("student count:" + Student.studentNum);
    	}
    }

      3.2 静态方法

        3.2.1 使用“类名.方法名”来访问静态方法。一般在工具类中定义一些静态方法来处理一些事情,这样可以方便地使用这些静态方法。在Java常用的数学工具类Math类中的方法大多数是静态的,可以很方便地访问。

    package chap5;
    
    public class StaticMethod {
    	public static void main(String args[]){
    		System.out.println("Print information by Static Method");
    		MyMethod.printString("str type");
    		MyMethod.printInt(5);
    	}
    }
    
    
    class MyMethod{
    	static void printString(String str){
    		System.out.println(str);
    	}
    	static void printInt(int i){
    		System.out.println(i);
    	}
    }
    

        3.2.2 使用静态方法时需要注意以下两点:

          - 静态方法不能直接访问非静态变量

          - 非静态方法可以直接访问静态变量

    package chap5;
    
    public class Demo1 {
    
    	int x = 0;
    	
    	public static void main(String[] args) {
    		// 静态方法中调用非静态变量,非法
    		System.out.println(x);
    	}
    }

      3.3 静态常量

        3.3.1 实际应用中静态变量不常用,最常用的是静态常量,用来存储程序中不会改变的信息。静态常量的定义如下:

    public static final int X = 123;
    

        3.3.2 该变量X在程序中是不可以改变的,不能通过赋值改变它的值。

        3.3.3 静态变量和静态常量的初始化是调用构造函数之前完成的。

    package chap5;
    
    public class Demo2 {
    	
    	static int x = 0;
    
    	static {
    		x = 100;
    	}
    	
    	Demo2(){
    		System.out.println(x);
    	}
    	
    	public static void main(String[] args) {
    		// 创建一个对象,创建对象之前会先执行static代码块,注意程序输出
    		Demo2 d = new Demo2();
    	}
    }

    4. 参数传递

      4.1 基本类型的参数传递

      4.2 对象类型的参数传递

    5. 包

      5.1 包的使用

      5.2 导入包

      5.3 在Eclipse中使用包

    6. 小结

  • 相关阅读:
    速达5000出现计算成本数据溢出的问题
    速达软件 移动端 App 功能说明
    无法打开物理文件 操作系统错误 5: 5(拒绝访问。) 问题解决
    速达软件开发版使用技巧-销售开单单据打印格式设计
    开发版速达软件如何进行有效授权
    速达软件 移动端 App 下载试用
    速达软件二次开发-试用版本下载,欢迎合作
    速达软件开发版使用技巧-每页固定行样式报表设计
    Cause: org.postgresql.util.PSQLException: 栏位索引超过许可范围:13,栏位数:12
    springboot 开启事务回滚
  • 原文地址:https://www.cnblogs.com/wnzhong/p/7899183.html
Copyright © 2020-2023  润新知