Java面向对象基本特征——变量、方法、static、final

变量
        成员变量

                定义在类体内方法外的变量为成员变量;

                分为:类变量、实例变量;

                类变量——全局变量

                        变量前定义有static关键字的为类变量,储存在类的公用区,属于类所有,所有该类的对象共享这一对象;

                        类变量保存在类的内存中,当第一次加载类的啥时候,就开辟了类的内存,类变量就存在了,直到程序运行结束。

                        类名.变量名; 对象名.变量名;

                实例变量

                        没有static关键字的为实例变量,属于对象所有,保存在对象的内存空间中;       

                        对象的变量,只有创建对象后,才能开辟出实例变量的内存空间,直到对象消失才消失。

                        对象名.变量名;

package test08;

public class Circle {
	
	public static int numOfCircle=0;//类变量
	private double radius;//实例变量
	
	public double getRadius() {
		return radius;
	}


	public void setRadius(double radius) {
		this.radius = radius;
	}
	
	public Circle(double radius) {
		this.radius=radius;
		numOfCircle++;//每创建一个对象,增加一
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("Circle.numOfCircle="+Circle.numOfCircle);//类变量,可以直接类名调用
		Circle c1=new Circle(2);//创建实例对象1,调用Circle构造方法
		System.out.println("Circle.numOfCircle="+Circle.numOfCircle);
		c1.radius=c1.radius+1;
		System.out.println("c1.radius="+c1.radius);
		Circle c2=new Circle(10);//创建实例对象2
		c2.radius=c2.radius+1;
		System.out.println("c2.radius="+c2.radius);
		System.out.println("c1.numOfCircle="+c1.numOfCircle);
		System.out.println("c2.numOfCircle="+c2.numOfCircle);
	}




}
                局部变量

                        定义在方法中的变量为局部变量,一种为形参,一种为方法体内变量;随方法的结束就结束,且方法体中的局部变量必须赋值后才能使用。

方法
        类方法

                   方法定义时前面有static字块的为类方法;且类方法只能使用类变量

                   对象名.方法();类名.方法()

        实例方法

                    方法前面没定义static字快的为实例方法;

                     对象名.方法();     

static代码块

        在类体内和方法外只能定义成员变量,但是可以定义static代码块来打破这种情况,将static代码块放在方法外内部可以放普通变量;

final修饰符
        final修饰类变量

                final修饰的类变量只能被赋值一次,以后不能改变;

                [访问修饰符] static final 数据类型 变量名[=value];

        final修饰实例变量

                final修饰的实例变量只能被赋值一次,以后不能改变

                [访问修饰符] final 数据类型 变量名[=value];

        final修饰局部变量

                final修饰的局部变量只能被赋值一次,以后不能改变;

                final 数据类型 变量名[=value];

        final修饰成员方法

                final修饰的成员方法不能被子类覆盖

                [访问修饰符] final 数据类型 方法名([参数列表]){}

        final修饰类

                final修饰的类不能被继承

                [访问修饰符] final class 类名{}

对象的初始化顺序

        无继承时:1、先类变量和static代码块;

                           2、实例变量;

                           3、构造方法;

        有继承时:1、父类的类变量和static代码块;

                           2、子类的类变量和static代码块;

                           3、父类的实例变量;

                           4、父类的构造方法;

                           5、子类的实例变量;

                           6、子类的1构造方法;

·

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值