java:类相关

public class Dog{
    
    
  String breed;
  int age;
  String color;
  void barking(){
    
    
  }
 
  void hungry(){
    
    
  }
 
  void sleeping(){
    
    
  }
}

类的方法

public class Main {
    
    

    public static void main(String[] args) {
    
    
    	// 方法调用
        myMethod();
    }
    // 方法
    public static void myMethod () {
    
    
        System.out.print("你好");
    }
}

不定长参数...,只能作为最后一个参数

public class Main {
    
    

    public static void main(String[] args) {
    
    
        myMethod("1","2");
    }
    public static void myMethod (String... args) {
    
    
        System.out.println("你好" + args[0]);
    }
}

类的构造方法(相当于初始化)

每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。

在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。

public class Puppy{
    
    
    public Puppy(){
    
    
    }
 
    public Puppy(String name){
    
    
        // 这个构造器仅有一个参数:name
    }
}

创建对象

public class Puppy{
    
    
   public Puppy(String name){
    
    
      //这个构造器仅有一个参数:name
      System.out.println("小狗的名字是 : " + name ); 
   }
   public static void main(String[] args){
    
    
      // 下面的语句将创建一个Puppy对象
      Puppy myPuppy = new Puppy( "tommy" );
   }
}
// 小狗的名字是 : tommy

访问实例变量和方法

public class Puppy{
    
    
   int puppyAge;
   public Puppy(String name){
    
    
      // 这个构造器仅有一个参数:name
      System.out.println("小狗的名字是 : " + name ); 
   }
 
   public void setAge( int age ){
    
    
       puppyAge = age;
   }
 
   public int getAge( ){
    
    
       System.out.println("小狗的年龄为 : " + puppyAge ); 
       return puppyAge;
   }
 
   public static void main(String[] args){
    
    
      /* 创建对象 */
      Puppy myPuppy = new Puppy( "tommy" );
      /* 通过方法来设定age */
      myPuppy.setAge( 2 );
      /* 调用另一个方法获取age */
      myPuppy.getAge( );
      /*你也可以像下面这样访问成员变量 */
      System.out.println("变量值 : " + myPuppy.puppyAge ); 
   }
}
/*
小狗的名字是 : tommy
小狗的年龄为 : 2
变量值 : 2
*/

对象的初始化顺序

1、类加载
概念:将class文件读取加载到JVM内存中的过程

2、类加载的时机:
1、创建类的对象
2、调用类的静态属性或方法
3、执行main方法时,main方法所在的类会被加载
4、通过反射调用类 Class.forName("包名.类名")

3、对象的初始化顺序
1、对象所在的类被加载
执行静态属性和静态代码块(执行的顺序由上到下)
特性:

  • 静态变量在类加载时初始化,且在内存中只分配一次空间
  • 静态代码块在类加载时执行,且只执行一次(类只会被加载一次,也就是说当你创建两个类的对象,其实类只加载了一次)
    2、对象被创建
    执行实例属性和代码块(执行的顺序由上到下)
    执行构造方法

类的成员

  • 属性(实例属性、静态属性)
  • 方法(实例方法、静态方法)
  • 构造方法
  • 代码块
  • 静态代码块
class User {
    
    
	// 实例属性
	String name = "张三";
	// 静态属性
	static String hobby = "吃饭";

	public void a () {
    
    
		System.out.println("实例方法");
	}

	public static void b () {
    
    
		System.out.println("静态方法");
	}
	
	public User () {
    
    
		System.out.println("构造方法");
	}

	{
    
    
		System.out.println("代码块");
	}

	static {
    
    
		System.out.println("静态代码块");
	}
}

执行顺序:静态代码块 -> 代码块 -> 构造方法

猜你喜欢

转载自blog.csdn.net/weixin_43972437/article/details/113483990
今日推荐