类
2.局部变量
- 局部变量是在方法被执行时创建,在方法执行结束时被销毁。
- 局部变量的名称可以与成员变量名称相同,但在方法中,此名称的值为局部变量的值。
public class test{
static int id = 999;
static String str = "Hello";
public static void main(String[] args){
System.out.println("id = " + id);
test t = new test();
t.f(str);
}
public void f(String name)
{
int id = 0;
for(int i = 0; i < 10; i++)//第一个i作用域开始
{
System.out.println("i = " + i + "id = " + id);
} //第一个i作用域结束
for(int i = 0; i < 10; i++)//第二个i作用域开始
{
//int id = 1; //错误代码,此id在局部变量id的作用域内重复定义
System.out.println("i = " + i + "id = " + id);
} //第二个i作用域结束
}
}
结果:
id = 999
i = 0id = 0
i = 1id = 0
i = 2id = 0
i = 3id = 0
i = 4id = 0
i = 5id = 0
i = 6id = 0
i = 7id = 0
i = 8id = 0
i = 9id = 0
i = 0id = 0
i = 1id = 0
i = 2id = 0
i = 3id = 0
i = 4id = 0
i = 5id = 0
i = 6id = 0
i = 7id = 0
i = 8id = 0
i = 9id = 0
3.this关键字
- this关键字代表本类对象的引用
- this可以调用成员变量和成员方法
- 在局部变量或方法参数覆盖了成员变量时,就需要添加this关键字明确引用的是类成员还是局部变量或者方法参数。
- 作为方法的返回值
- 调用构造方法(只能在构造方法的第一句使用此方法)
package day01;
public class test{
static String str = "Hello";
public static void main(String[] args){
AnyThing t = new AnyThing();
}
class AnyThing{
public AnyThing(){ //定义有参构造方法
this("调用有参构造方法"); //使用this调用有参构造方法
System.out.println("无参构造方法");
}
public AnyThing(String name){ //定义有参构造方法
System.out.println("有参构造方法");
}
}
结果:
有参构造方法
无参构造方法
package day01;
public class test{
static String str = "Hello";
public static void main(String[] args){
AnyThing t = new AnyThing(str);
}
public void f(String name)
{
int id = 0;
for(int i = 0; i < 10; i++)//第一个i作用域开始
{
System.out.println("i = " + i + "id = " + id);
} //第一个i作用域结束
for(int i = 0; i < 10; i++)//第二个i作用域开始
{
//int id = 1; //错误代码,此id在局部变量id的作用域内重复定义
System.out.println("i = " + i + "id = " + id);
} //第二个i作用域结束
}
}
class AnyThing{
public AnyThing(){ //定义有参构造方法
System.out.println("无参构造方法");
}
public AnyThing(String name){ //定义有参构造方法
this();
System.out.println("有参构造方法");
}
}
结果:
无参构造方法
有参构造方法
4. 构造方法
- 与类同名
- public修饰
- 无返回值,但不需要加void
public book{……}
即可 - 类实例化一个对象时,自动调用构造方法,如无任何构造方法(无参或有参),编译器自动创建一个无参的构造方法
5.静态常量、变量、方法
- static关键字修饰
- 通过
类名.静态类成员
调用 - 静态数据与静态方法的作用是为了提供共享数据或者方法,如
final static double PI = 3.14;
- 静态方法中不可以使用this关键字
- 静态方法不可以直接调用非静态方法
- 局部变量不可声明为static
- static定义的静态区域只会被执行一次
6.主方法
public static void main(String[] args){……}
- 主方法是静态方法,不能直接调用非静态方法
- 无返回值
7.引用
Book book = new Book();
其中Book是类名,book是对象的引用,new Book ()创建了一个对象并存放在堆中,book存放的是此对象的内存地址。