147
package com.Apr.seventeen;
/**
*
* 实例语句块/代码块【了解内容,使用的非常少】
* 1、实例代码块可以编写多个,也是遵循自上而下的顺序依次执行
* 2、实例代码块在构造方法执行之前执行,构造方法执行依次,实例代码块对应执行一次。
* 3、实例代码块也是java语言为程序员准备一个特殊的时机,这个特殊时机被称为:对象初始化时机。
*
* @author Sam
*
*/
public class Test {
// 构造函数
public Test() {
System.out.println("Test类的缺省构造器执行");
}
// 实例代码块
{
System.out.println(1);
}
// 实例代码块
{
System.out.println(2);
}
// 实例代码块
{
System.out.println(3);
}
// 主方法
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("main begin");
new Test();
new Test();
}
}
package com.Apr.seventeen;
public class MainTest {
// public表示公开的,在任何位置都是可以访问的
// static表示静态的,使用"类名."的方式即可访问,不需要创建对象,就可以调用main方法
// void表示main方法执行结束之后不返回任何值
// main是main方法的方法名
// (String[] args)是main方法的形式参数列表
public static void main(String[] args) {
// TODO Auto-generated method stub
main(10);
main("hello world!");
}
public static void main(int i) {
System.out.println(i);
}
public static void main(String args) {
System.out.println(args);
}
}
148
package com.Apr.seventeen;
/**
*
* 方法什么时候定义为静态的?
* 方法描述的是动作,当所有的对象执行这个动作的时候,最终产生影响是一样的,那么
* 这个动作已经不再属于某一个对象动作了,可以将这个动作提升为类级别的动作,模板 级别的动作。
*
* 静态方法中无法直接访问实例变量和实例方法。
*
* 大多数方法都定义为实例方法,一般一个行为或者一个动作在发生的时候,都需要对象的参与。
* 但是也有例外,例如:大多数"工具类"中的方法都是静态方法,因为
* 工具类就是方便编程,为了 方便方法的调用,自然不需要new对象是最好的。
*
* @author Sam
*
*/
public class StaticTest {
// 实例变量
int i = 100;
// 实例方法
public void doSome() {
}
// 静态方法【静态上下文】
public static void main(String[] args) {
// TODO Auto-generated method stub
// System.out.println(i);
// doSome();
StaticTest st = new StaticTest();
System.out.println(st.i);
st.doSome();
// 使用数学工具类
System.out.println(MathUtil.sumInt(10, 20));
System.out.println(MathUtil.divide(40, 20));
}
}
/*
* 总结:
*
* class 类{
* 静态代码块;
* 实例代码块;
*
* 静态变量
* 实例变量
*
* 构造方法
*
* 静态方法
* 实例方法
* }
*
*/
package com.Apr.seventeen;
/**
*
* 数学工具类
*
* @author Sam
*
*/
public class MathUtil {
public static int sumInt(int a, int b) {
return a + b;
}
public static int divide(int a, int b) {
return a / b;
}
}