JAVA学习之类和对象篇(二)

本文是笔者学习JAVA的一些笔记。

Posted by 南三号 on August 23, 2017

运行Java程序,定义了很多类之后需要某个类作为入口类(相当于程序的入口),那个类里面会有一个入口函数:main函数,函数里写这个程序所要执行的代码。

public class init{
  public static void main(String[] args){
    //写要运行的代码
  }
}

一.定义Java中的类(属性+方法)

定义一个类名+编写类的属性+编写类的方法

public class <类名>{
  //定义属性部分(成员变量)
  属性1的类型  属性1;
  属性2的类型  属性2;
    
  //定义方法部分
  方法1返回值类型  方法1;
  方法2返回值类型  方法2;
}

二.JAVA对象

1.创建对象:

//类名(对象类型) 对象名=new 类名( );
HelloWord helloword=new HelloWord( );

2.使用对象:

  • 引用属性:对象名.属性
  • 引用方法:对象名.方法

三.成员变量和局部变量

图片发自南三号

作用域:

  • 局部变量:仅限于定义它的那个方法中,比如上图中方法一中的变量只能在方法一中使用
  • 成员变量:在整个类的内部都是可见的(类中共享)

初始值:

  • 成员变量:自动拥有初始值0

  • 局部变量:不会有初始值,所以要给初始值

  • 特别注意

    同一方法不能有同名局部变量 不同方法中可以有同名局部变量 两类变量同名时,局部变量具有更高的优先级(就近原则)

四.构造方法(有参和无参)

  • 无参的构造方法:当没有自定义构造方法时,系统会自动添加一个无参的构造方法,如果你觉得不满意,可以自定义无参构造方法。
  • 有参的构造方法:方便实例化对象的初始化(即对象属性赋合理初值)。传值不正确可以在构造函数中进行判断,避免传值不安全。
  • 特别注意:当你自定义了构造方法,系统就不会为你自动添加。如果你自定义了一个有参的构造方法,你就不能使用无参的构造方法,如果想要使用,则必须再自定义一个无参的构造方法。
  • 构造方法的重载:根据初始化值的不同要求,定义多个有参的构造函数。

六.java中的static使用

1.静态变量:

类中的静态变量不是被某一个实例对象特有,而是所有对象共享,用对象名,类名都可以进行访问,推荐使用类名访问:

public class HelloWorld {
    // 定义静态变量我的名字
	static String myName = "南三号";
	public static void main(String[] args) {
		// 访问静态变量,输出我的名字
		System.out.println(HelloWorld.myName);
	}
}

2.静态方法:

性质及使用方法与静态变量类似 用对象名或者类名调用静态方法

public class HelloWorld {
    // 定义静态方法输出我的名字
	public static void print( ){
        System.out.println(南三号)
    }
	public static void main(String[] args) {
		// 访问静态方法,输出我的名字
		HelloWorld.print( );
	}
}

注意:静态方法能直接调用同类中的静态变量,但不能调用非静态变量。想要调用必须先实例化一个对象。 而普通方法则都可以调用。

3.静态初始化块

  • 执行优先级: 静态初始化块>初始化块>构造函数
  • 代码示例:
    public class HelloWorld {
      int num1,num2;
      static int num3;
      // 构造方法
      public   HelloWorld () { 
          num1=1;
      }
      // 初始化块
      { 
          num2=2;
      }
      // 静态初始化块
      static   { 
          num3=3;
      }
    }
    
  • 注意:静态初始化块只在加载类的时候加载一次,且只能初始化静态变量的值,不能初始化普通变量。