package com.atguigu.java;
/**
变量的分类:
按照数据类型:基本数据类型vs引用数据类型
按照位置分:局部变量 vs成员变量(属性)
局部变量和成员变量共同点:
1.先声明后使用
2.声明的格式相同
3.都有作用域
局部变量和成员变量(属性)不同点:
1.位置:成员变量(属性)在类中,且在方法、构造器等结构外。
局部变量在方法、构造器、代码块、方法等中
2.默认值:
属性:默认值数据类的默认值一致
基本数据类型:
byte,short,int,long ->0
float,doule-> 0.0
char ->u0000
boolean -> false
局部变量:没有默认值
3.权限修饰符:
属性:private、、public、缺省、protected
局部变量:没有权限修饰符
4.内存:
属性:在堆中的对象里边
局部变量:在栈中
*/
class Animal{
int age; //属性,其权限修饰符为缺省的
private int score; //属性,其权限修饰符为private
public Animal(){ //构造器
int a= 10; //局部变量
}
public Animal(int c){//局部变量
}
{//代码块
int a= 10; //局部变量
}
public void show(int a){//局部变量
String name = "ccc";//局部变量
}
}
public class FieldTest {
public static void main(String[] args) {
Animal animal = new Animal();
System.out.println(animal.age); //默认值是0
int a; //局部变量没有默认值
}
}