JavaSE学习之--类和对象(二)+https://developer.aliyun.com/article/1413484
3. static修饰方法
注意:
1.静态方法内部不能出现this引用,因为this引用必须指明对象,静态方法不属于对象,静态方法是类的方法!
2.不能在静态方法内部访问任何非静态成员变量!
3.在静态方法内部不能直接引用非静态方法(因为非静态方法内部都有this的引用)但可以在非静态方法内部创建一个对象,通过对象来访问非静态方法!
4.通过对象在静态方法内部调用非静态方法
5.静态成员变量的初始化
1.就地赋值(直接再初始化时就赋值)
2.通过代码块赋值-->先介绍代码块
代码块:
1.定义:
被{}围起来的代码就叫做代码块!
分类:
普通代码块
构造块
静态块
同步代码块(后续讲解多线程部分再谈)
2.普通代码块:
定义在方法内部的代码
public static void main(String[] args) { // 普通代码块 { int x= 10; System.out.println(x);// 输出10 } System.out.println(x);// err x只能在上面的代码块内部使用
3.实例代码块:
用来初始化实例变量的代码块
// 实例代码快-->用来初始化实例变量(不加修饰符) { this.age = 12; this.sex = "女"; this.name = "绿子"; } Stu stu1 = new Stu(); System.out.println(stu1.name);// 输出绿子
4.静态块(添加修饰符static):
用来初始化静态变量!!!
public static String classroom; static { classroom = "222202"; System.out.println("hello world"); }
注意:
1.静态代码块多少个对象,代码块只会被执行一次(创建对象的时候执行唯一一次)
2.代码块的优先级高于构造方法
3.如果一个类中包含多个静态代码块,在编译代码时,编译器会按照定义的先后次序依次执行(合并)
总结:实例代码块和静态代码块的区别
1.实例代码块只能在对象创建的时候才会被调用,而静态代码块不需要创建对象就可以直接通过类来访问
2.静态代码块只能被执行一次,而实例代码块可以被执行多次(实例化一个对象就执行一次)
对象的打印:
1.直接传递对象名会打印指向对象的地址
2.如何通过一个函数来打印所有成员变量呢?通过tosTring()
3.快速调出toString方法
总结:
1.封装是面向对象(Object Oriented program)的三大特征(封装,继承,多态),通过封装能更好的管理成员变量
2.类是面向对象重要的部分,通过将研究的事物分离出来各种类,通过类之间的交互来完成工作
3.类是对现实事物的抽象化处理,通过new关键字进行对象的实例化
4.构造方法是一种特殊的初始化成员变量的方法;掌握命名规则和如何快速创建
5.理解静态成员变量和实例变量的区别
6.代码块也是用来初始化成员变量的,其优先级很高
7.通过改写toString方法以字符串的形式打印成员变量