类和对象2

来源:互联网 发布:淘宝售假扣分多久清零 编辑:程序博客网 时间:2024/05/02 00:41

类和对象的关系:

类:对现实生活中事物的描述,提取对象中共性内容,对具体的抽象。

对象:就是这类事物,实实在在存在的个体。对应Java在堆内存中new建立的实体。

 

 

1.类的实现包括两部分,即类的声明和类体。基本格式:

class 类名

类体的内容

Class是关键字,用来定义类,“class 类名”是类的声明部分,两个大括号以及之间的内容是类体。

2.成员变量和局部变量

成员变量:在变量声明部分声明;作用于整个类;在堆内存中,因为对象的存在,才在内存中存在。

局部变量:在方法体中声明的变量和方法的参数;作用与函数中或者语句中;存在于栈内存中。

 

类变量和实例变量:在声明成员变量时,用关键字static给与修饰的变量为类变量,否则为实例变量。

区别:

1>不同对象的实例变量将被分配不同的内存空间,如果有类变量,那么所有对象的这个类变量都分配给相同的一处内存。

2>Java程序执行时,类的字节码文件被加载到内存,如果该类没有创建对象,类中的实例变量不会被分配内存。但是,类中的类变量在该类被加载到内存时,就分配了相应的内存空间。

3>类变量不仅可以通过某个对象访问,还可以直接通过类名访问。

3.方法

1>方法重载:

一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。

2>构造方法

特点:

函数名与类名相同;

不用定义返回值类型;

不可以写return语句;

当类中没有定义构造函数时,系统会默认给该类加入一个空参数的构造函数。

作用:

给对象进行初始化。

注意:

默认构造函数的特点

多个构造函数是以重载的形式存在的

构造代码块:

只包含大括号及之间的内容。例如:

{System.out.println(“Person”);}

作用:给对象进行初始化。

对象一建立就运行,而且优先于构造函数执行。

和构造函数的区别:

构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象初始化。

构造代码块中定义的是不同对象共性的初始化内容。

3>类方法和实例方法

static修饰的是类方法,否则是实例方法

区别:

当类的字节码文件被加载到内存时,类的实例方法不会被分配入 口地址,在类创建对象后才被分配。当创建第一个对象时,就被 分配直到所有对象都不存在才被取消。

   对于类方法,在该类被加载到内存时就分配了入口地址,可以直 接通过类名调用。方法的入口地址直到程序退出时才被取消。

 

什么时候使用静态函数?

当功能内部没有访问到静态数据(对象的特有数据)时,该功能可以定义成静态的。

例如:

class Person{String name;Private Person(){}//构造函数私有化,强制该类不能建立对象。Public static void show(){System.out.println(“hello”);}}Class{Public static void main(String args[]){//Person p = new Person();//P.show();Person.show();}}

将方法静态后,可以更便于使用,但该类还是可以被其他程序建立对象的。可以通过将构造函数私有化强制让该类不能建立对象。


0 0