this 关键字

this代表当前对象,代表将来创建好的对象
this的使用场所:

  • 在普通方法中使用,用于获取成员变量
  • 在普通方法中使用,可以使用this 调用其他方法,通常这个this,可以被省略
  • 可以在构造器中通过this 区分局部变量和成员变量
  • this 必须是构造器中第一个语句
public class Teacher {
	String name;
	int age;
	boolean isMarried;
	public Teacher() {
		System.out.println("无参构造器");
	}
	public Teacher(String name, int age) {
		this();
		System.out.println("两个参数的构造器");
		this.name = name;
		this.age = age;
	}
	//构造器的复用
	public Teacher(String name, int age, boolean isMarried) {
		//this();//调用无参构造
		this(name,age);//调用两个参数构造
		System.out.println("有参构造器");
		//可以在构造器中通过this 区分局部变量和成员变量
		this.isMarried = isMarried;
	}
	public void show(){
		System.out.println(name +":"+age+":"+isMarried);
		// 在普通方法中使用,可以使用this 调用其他方法,通常这个this,可以被省略
		this.work();
	}
	public void work(){
		System.out.println("我要赚钱");
	}
	public static void main(String[] args) {
		//创建Teacher 对象
		Teacher teacher = new Teacher("张杰", 25, false);
		//调用方法
		teacher.show();
	}
}

package

package 用于管理类和接口,有时候,多个类有重名的情况可以使用package类管理 类使用package 可以更加合理的规划项目结构,不同的类应该放在合理的包下

import (导包)

基本类型,

//定义一个方法,需要传入两个整数,功能是将两个整数进行互换
public class Test {
	public void exchange(int a,int b){
		System.out.println("交换前:"+a+":"+b);
		int temp;
		temp=a;
		a=b;
		b=temp;
		System.out.println("交换后:"+a+":"+b);
	}
	public static void main(String[] args) {
		//创建对象
		Test test = new Test();
		test.exchange(3, 5);
	}
}

引用类型参数传递

public class Test2 {

	int x;
	int y;
	public Test2(){}
	public Test2(int x, int y) {
		super();
		this.x = x;
		this.y = y;
	}
	public void exchange(Test2 t){
		int temp =t.x;
		t.x=t.y;
		t.y=temp;
	}
	public static void main(String[] args) {
		//使用构造器创建对象
		Test2 t = new Test2(45,56);
		System.out.println("交换前"+t.x+":"+t.y);
		t.exchange(t);
		System.out.println("交换后"+t.x+":"+t.y);
	}
}

结论

基本数据类型传参时传递的是值-------传值
引用数据类型传参时传递的是址------传址

static 关键字

static 静态 可以修饰属性和方法
修饰属性
static 修饰的属性被称为静态属性(静态成员变量)
普通的成员变量属于对象需要创建对象才能使用。
静态成员变量隶属于类,被所有的对象共享,静态成员变量存放在方法区。(在对象还未创建就已经存在)。
修饰方法
static 修饰的方法被称之为静态方法。静态方法中无法使用非静态的成员,也不能使用this 关键字
原因是静态方法在类被加载的时候就被加载,此时对象还未创建可以直接:类名.方法使用;不需要创建对象
static修饰的方法中不能使用,this 和普通成员变量

//以Math为例 math,中方法
double pi = Math.PI;

静态代码块
静态代码块也属于类组成成员。
格式:
类里面:成员变量,方法 ,构造器,静态代码块

public class TestStatic {

	int num;
	static String str;
	public TestStatic(){}
	public TestStatic(int num){
		this.num=num;
		System.out.println("有参构造器被创建");
	}
	public void show(){
		System.out.println("普通方法:"+this.num);
	}
	public static void testStatic(){
		System.out.println("静态方法:"+str);
	}
	/**
	 * 静态代码块,通常用于静态成员变量进行初始化操作
	 */
	static{
		str="测试静态代码块";
		System.out.println("静态代码块执行");//因为类只加载一次所以静态代码块只会执行一次
	}
	
	public static void main(String[] args) {
		//创建对象
		TestStatic testStatic = new TestStatic(123);
		//调用普通方法
		testStatic.show();
		//调用静态方法
		TestStatic.testStatic();
	}
}

静态代码块:特征: 在类被加载的同时,就会加载静态代码块
通常用于为静态成员变量进行初始化操作