Java基础回顾1

Java基础回顾1

类体{
	实例变量;
	实例方法;

	静态变量;
	静态方法;

	构造方法;

	静态代码块;
	实例语句块;

	方法(){
		局部变量;
	}
}

回顾1

/*
	1.类加载机制:在程序执行之前,把需要加载的类全部加载到jvm中。
	2.先完成加载才会执行main方法
*/
public class Review{
	//静态代码块:在类加载时执行,只执行一次
	static {
		System.out.println("Review静态代码块执行!");
	}
	
	//程序入口
	public static void main(String[] args){
		//局部变量
		int i = 100;
		
		//new一个对象,调用一次构造方法
		Student s1 = new Student();
		s1.study();	//调用实例方法
		
		Student s2 = new Student(2222,"lisi");
	}
}
//学生类
class Student{
	//静态代码块
	static {
		System.out.println("Student静态代码块执行!");
	}
	
	//学号
	private int no;	//实例变量
	//姓名
	private String name;
	//任务
	private static String task = "学习";
	
	//实例语句块:构造方法之前执行,调用一次构造方法执行一次
	{
		System.out.println("实例语句块执行,在构造方法之前!");
	}
	
	//无参构造
	public Student(){
		//this() 调用本类其他构造方法,只能在构造方法第一行
		this(1111,"zhangsan");
		
		System.out.println("无参构造执行!");
	}
	//有参构造
	public Student(int no, String name){
		this.no = no;
		this.name = name;
		System.out.println("有参构造执行!");
	}
	
	//get和set方法
	public void setNo(int no){
		this.no = no;
	}
	public int getNo(){
		return no;
	}
	public void setName(String name){
		this.name = name;
	}
	public String getName(){
		return name;
	}
	
	//实例方法
	public void study(){
		//System.out.println(this.name + "正在学习");
		//System.out.println(name + "正在学习");
		System.out.println(this.getName() + "正在学习");
		//System.out.println(getName() + "正在学习");
		
		//调用实例方法
		//this.eat();
		eat();	//省略前面默认加"this.",即"引用."
	}
	public void eat(){
		System.out.println(this.getName() + "正在吃饭");
		
		//调用静态方法 
		//Student.m1();
		m1();	//省略前面默认加"类名."
	}
	
	//静态方法
	public static void m1(){
		System.out.println("静态方法1执行!");
		
		//调用静态方法 
		//Student.m2();
		m2();
	}
	public static void m2(){
		System.out.println("静态方法2执行!");
		//编译器检测到task是一个静态变量,所以会自动在task前面加"类名."
		//以上静态方法同理
		System.out.println("主要任务:" + task);
	}
}

结果:

Review静态代码块执行!
Student静态代码块执行!
实例语句块执行,在构造方法之前!
有参构造执行!
无参构造执行!
zhangsan正在学习
zhangsan正在吃饭
静态方法1执行!
静态方法2执行!
主要任务:学习
实例语句块执行,在构造方法之前!
有参构造执行!

回顾2

/*
	1.所有实例相关的都是先创建对象,通过"引用."的方式调用
	2.所有静态相关的可以直接通过"类名."的方式调用("引用."的方式也可以但是不建议)
	
	3.实例方法可以直接调用实例变量和实例方法、静态变量和静态方法。
	4.静态方法只能调用静态变量和静态方法。
	  如果想要调用实例变量和实例方法,需要new 对象
	
	5.在同一个类中
		引用.(this.) 可以省略
		类名. 可以省略
*/
public class Review2{
	
	int i = 100;
	
	static int j = 1000;
	
	//实例方法
	public void m1(){
		//访问其他类中的静态方法
		T.t1();
		//访问其他类中的实例方法
		T t = new T();
		t.t2();
	}
	public void m2(){}
	
	public void x(){
		m1(); //实例方法前面默认加"this."
		m2();
		
		m3(); //静态前面默认加"类名."
		m4();
		
		System.out.println(i);
		System.out.println(j);
	}
	
	//静态方法
	public static void m3(){}
	public static void m4(){}
	
	//程序入口
	public static void main(String[] args){
		
		//编译错误:无法从静态上下文中引用非静态方法
		//m1();
		//m2();
		
		m3();
		m4();
		
		//编译错误:无法从静态上下文中引用非静态变量
		//System.out.println(i);
		
		System.out.println(j);
		
		//在static方法中要访问m1()、m2()、i,需要new 对象
		Review2 r = new Review2();
		r.m1();
		r.m2();
		System.out.println(r.i);
	}
}

class T{
	public static void t1(){}
	
	public void t2(){}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值