当前内容总结 | B站Java学习笔记

总结所有的变量怎么访问,总结所有的方法怎么访问
总结一下到目前为止在一个类中都接触过什么了

类体 {
	实例变量;
	实例方法;
	
	静态变量;
	静态方法;
	
	构造方法;
	静态代码块;
	实例语句块;

	方法() {
		int i = 100;
	}
}
public class Review { //类
	// 类加载机制中,是这样的:在程序执行之前,凡是需要加载的类全部加载到JVM当中
	// 先完成加载才会执行main方法  
	static {
		System.out.println("Review类加载时执行");
	}
	//入口
	//静态方法
	public static void main(String[] args) {
		//局部变量
		int i = 100;

		//完成一个对象的一连串动作
		//一个学生在教室先学习,学习完成之后去餐厅吃饭
		Student s1 = new Student();
		//先学习,所以调用学习的实例方法
		s1.study

		Student s2 = new Student();
//学生类
class Student {

	static {
		System.out.println("Student类加载时执行");
	}
	//学号
	private int no;
	//姓名
	private String name;

	static String job = "学习";

	{
		System.out.println("实例语句块,构造方法执行一次,这里就执行一次");
	}
	//构造方法
	public Student() {
		//假设调用无参数的构造方法,默认创建的学生学号是100,名字是zhangsan
		this(100, "zhangsan"); //this()在这里也是用了
	}
	public Student(int no, String name) {
		this.no = no; //这里使用了this
		this.name = name;
	}
	
	//封装
	//setter and getter方法
	public void setName(String name) {
		this.name = name;
	}
	public String getName() {
		return name;
	}
	public void setNo(int no) {
		this.no = no;
	}
	public int getNo() {
		return no;
	}
	//提供两个实例方法
	public void study() {
		//私有的是可以在本类中访问的,在其他类中必须使用set和get方法
		System.out.println(this.name + "is working hard");
		System.out.println(name + "is working hard");
		//在实例方法中调用本类其他的实例方法
		System.out.println(this.getName() + "is working hard");
		System.out.println(getName() + "is working hard");
		
		//方法实行到此处表示学习完成了,去吃饭
		this.eat();
		//这里的this可以省略
		//java编译器会自动在eat()方法之前添加“this.",因为检测到eat()方法是一个实例方法
	}
	public void eat() {
		System.out.println(this.getName() + "is eating");
		
		//调用静态m1()方法
		//静态方法使用“类名.”方式访问
		Student.m1();
		//类名.可以省略吗?可以,因为都在同一类中
		//java编译器会自动在m1()方法之前添加“类名.",因为检测到m1()方法是一个静态方法
		m1();
	}
		
	//提供两个静态方法
	public static void m1() {
		System.out.println("Student's m1 method is executed");
	}
	public static void m2() {
		System.out.println("Student's m2 method is executed");
		System.out.println("工作性质:" + job);
		//编译器检测到job是一个静态变量,所以这里会自动在job前添加:Student.
		System.out.println("工作性质:" + Student.job);

程序再怎么变化,万变不离其宗,有一个固定的规律:
所有的实例相关的都是先创建对象,通过”引用.“来访问
所有的静态相关的都是直接采用“类名.“来访问

大结论:
只要负责调用的方法a和被调用的方法b在同一个类当中:
this. 可以省略
类名. 可以省略

public class Review02 {
	public void m1() {}

	public void m2() {}
	
	public static void m3() {}
	
	public static void m4() {}
	
	public static void main(String[] args) {
		m1();
		m2();
		m3();
		m4();
	}

哪个方法可以访问?
分析:

第一步:main方法是静态的,JVM调用main方法的时候直接采用的是”类名.“的方式
			 所以main方法中没有this
第二步:m1() 和 m2() 方法是实例方法,按照Java语法规则来说,实例方法必须先new对象,通过”引用.“的方式访问 
编译器会自动识别m3()静态方法,结果是:Review02.m3();
m4() 同理

那么怎么调用m1() 和m2()呢 --> 在实例方法中,调用m1()和m2()
public void x() {
	m1();
	m2();
}
public class Review02 {
	public void m1() {}

	public void m2() {}
	
	public static void m3() {}
	
	public static void m4() {}
	
	public static void main(String[] args) {
		m1();
		m2();
		m3();
		m4();
	}

仅供学习使用,内容版权归B站视频老师所有。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值