JAVA中三种类型的变量
2016-07-17 14:27
656 查看
1. 局部变量与成员变量
案例一:
public
class Demo02 {
int
age=5;//无用代码
public
static void main(String[]
args) {
Demo02 d =new Demo02();
d.pupAge(17);//Puppy age is: 24
}
public
void pupAge(int
age){
age+=7;
System.out.println("Puppy ageis: "+age);
}
}
案例二:
public
class Demo01{
static String
s1;//定义静态变量s1;
String s2;//定义成员变量s2;
public
static void main (String[]
ary){ //main方法为静态方法
Demo01d =new
Demo01(); //创建对象
String s3; // 定义局部变量s3;
System.out.println("s1="+s1);
System.out.println("s2="+s2); //编译错误。不能让一个静态方法引用非静态变量s2,因为静态方法中没有默认this指针(this.);
System.out.println("s2="+d.s2); //如果需要访问,需要定义一个对象(DEMO01
d =new DEMO01();)通过对象访问静态变量和方法
System.out.println("s3="+s3); //编译错误。局部变量s3没有被初始化
//变量必须在初始化后才能使用,类变量会自动初始化成默认值,但是局部变量则不会,不初始化,无法使用.
}
}
2. 成员变量与静态变量
案例三:
package weekend02;
public
class Demo05 {
static Cat
catQueen; //定义一个静态变量//在类中,方法外
public
static void main(String[]
args) {
System.out.println(Cat.num); //0//静类变量用类名直接访问,默认初始化为“零”值(0,false,null);
Cat tom = new Cat(3); //成员变量的调用必须先创建对象
System.out.println(tom.age); //通过对象引用成员变量
Cat.num++;
System.out.println(Cat.num); //1//静类变量并不是初始化后不可改变//
tom.catFather(); //通过对象调用实例方法
tom.catColor(); //通过对象调用静态方法
catQueen.catColor(); //静态变量直接调用静态方法
catQueen.catFather();
//静态变量直接调用实例方法时,会出现空指针异常
}
}
class Cat{
static
int num; //定义静态变量
int
age; //定义成员变量
public Cat(int
age){ //构造器(与类名相同,没有返回值,没有void)
this.age=age; //this为隐含参数,前一个age表示对象属性,后一个age表示局部变量
}
public
static void catKing(){ //定义静态方法
/*
* 静态方法的定义规则及语法
*static+返回值类型/void+方法名称(参数列表)
{
*方法体………
* }
*/
String name ="Boots";//定义局部变量
num=3; //静态变量赋值为3;
//age=2; //静态方法中没有隐含变量“this”,不能直接调用成员变量
//this.catFather(); //编译错误,静态方法中没有隐含参数this。
catColor(); //类中可直接调用静态方法,(Cat.catColor())_类中类名可省略
//catFather(); //不可直接调用实例方法,需先创建对象
}
static
void catColor(){
System.out.println("这是一个关于猫颜色的静态方法");
}
void catFather(){
System.out.println("这是一个关于猫爸的实例方法");
}
}
相关文章推荐
- String类源码分析(JDK1.7)
- java设计模式-工厂模式
- java文件及读写操作
- SSM框架整合(IntelliJ IDEA + maven + Spring + SpringMVC + MyBatis)
- 开源java数据库库
- Servlet的生命周期
- 《java虚拟机》汇总所有关键要点
- java设计模式之单例模式
- 关于java中的编码问题
- JAVA——设计模式
- 使用spring的aop模拟事物
- springmvc(18)使用WebSocket 和 STOMP 实现消息功能
- Java GZip数据压缩传输到前台
- WebService学习总结九 使用Spring发布WebService
- struts2的jsp页面下载文件
- Java网页爬虫utf-8
- 【问题-java-json】josn的发送与接收(全)解析json对象与字符串在js中的区别,以及后端spring该如何接收?
- java多线程版生产者消费者模型
- Java内存模型
- 【Java】Java中关于HashMap的使用和遍历