您的位置:首页 > 大数据 > 人工智能

面向对象之this关键字,static关键字 main

2013-12-19 17:57 218 查看
this指的是什么?

this其实是指本类的对象,本类对象可以创建很多,具体代表的是哪个对象呢?哪个对象在调用this所在的函数,this就代表哪个对象

什么时候使用this?

定义类中的功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象,只要是本类功能内部使用到了本类对象,都可用this表示

class Person2
{
private String name;
private int age;
Person2(String name,int age)
{
//此时这里要用this,因为局部变量name ,age与成员变量名称相同,如果此处 不用this代表着用的还局部变量的name
this.name=name;
this.age=age;
}
}
构造函数中的相互调用 this

this只能在构造函数的第一行,因为初始化要先执行

class Person2
{
private String name;
private int age;
Person2(String name,int age)
{
//此时会调用 用带有一个参数的构造参数
this(name);
this.age=age;
}
//无参数构造函数
Person2()
{

}
//有参构造函数
Person2(String name)
{
this.name=name;
}


static关键字

修饰符,只能用于修饰成员 (成员变量,成员函数)

如果被static修饰的话这个成员变量/成员函数就不在堆内存 中了,而在方法区中(共享区,数据区)

方法区中存储的是什么 :静态,类中的方法,

静态除了被对象调用外,还可以直接被类名调用

静态有特点:

1.随着类的加载而加载,静态会随着类的消失面消失,说明它的生命周期最长

2,被所有对象共享

3.优先于对象存在,静态是先存在的,对象是后存在的,

4.可以被对象调用

实例变量和类变量的区别:

1,存放的位置

      类变量(静态)随着类的加载而存在于方法区中

      实例变量随着对象的建立而存在于堆内存中

2.生命周期

      类变量生命周期最长,随着类的消失而消失

      实例变量生命周期随着对象的消失而消失

静态使用的时候需要注意的地方

1,静态方法只能访问静态成员

2,非静态方法可以访问非静态成员 ,可以访问静态成员,因为静态优先于对象存在,所以能够访问

3.静态中不能定义this,super关键字,因为静态优先于对象存在,所以静态方法中不可以出现this

静态的优点:

对对象的共享数据进行单独空间的存储,节省空间,没有必要每一个对象中都存储一份,可以直接被类名调用

静态的缺点:

生命周期过长 ,访问出现了局限性,静态只能访问静态

什么时候会使用到静态?

当对象中有共享的数据时,是数据(值),而不是属性

当函数中没有出现对象的特有数据就可以将这个函数定义成static

简单的小示例

public class ObjectStatic
{
public static void main(String[] args)
{
//因为类成员方优先于对象存在所以此时可以用类名.方法调用
Student.classInfo();
Student s=new Student("zhangsan",20);
s.classInfo();
s.info();

}
}

class Student
{
//学生的姓名
private String name;
//学生的年龄
private int age;
//学生的班级,此时每个学生都属于同一个班级,可以将这个成员变量设置成static
private static String Class1="1023";

Student(String name,int age)
{
this.name=name;
this.age=age;
}

public void info()
{//这里使用到了对象的特有数据函数不能声明为static
System.out.println("name:"+name+"age:"+age);
}
public static void classInfo()
{
System.out.println("class:"+Class1);
}
}
主函数 main
是一个特殊的函数,程序的入口,可以被虚拟调用

主函数的定义:

public :该函数的访问权限最大

static:主函数随着类的加载而加载已经存在

void:主函数没有具体返回值

main:是一个特殊的单词,可以被虚拟机识别,不是关键字
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐