Java基础学习7_类和对象

来源:互联网 发布:淘宝客返现 编辑:程序博客网 时间:2024/06/05 20:38

一、什么是类和对象

1、类是一个泛指,确定对象将会拥有的特征(属性)和行为(方法);

类的特点:类是对象的类型,具有相同属性和方法的一组对象的集合。

2、属性——对象具有的各种特征

每个对象的每个属性都拥有特定值

3、方法——对象执行的操作

4、类和对象的关系:

类是抽象的概念,仅仅是模板,即表示类别;对象是一个具体实体,即个体。

 

二、如何定义Java中的类

1、  定义一个类的步骤

(1)      定义类名

(2)      编写类的属性:先指定属性,再定义属性名

(3)      编写类的方法:可以有多个方法,也可以没有方法

属性和方法的定义均要在class类的大括号中。

public class 类名{

//定义属性部分(成员变量)

属性1的类型 属性1;

属性2的类型 属性2;

属性n的类型 属性n;

//定义方法部分

方法1;

方法2;

方法m;

}

 

三、如何使用Java中的对象

使用对象的步骤:

1、  创建对象:

类名对象名=new 类名();     //类的实体化:即将类分配到内存中

Telphone phone=new Telphone(); 

2、  使用对象:

引用对象的属性:对象名.属性

phone.screen=5; //给screen属性赋值为5

引用对象的方法:对象名.方法名()

phone.sendMessage();  //调用sendMessage()方法

注意:float型变量赋值时需加f,否则默认浮点数是double类型。

 

四、Java中的成员变量和局部变量

1、  成员变量

在类中定义,用来描述对象将有什么

2、  局部变量

在类的方法中定义,在方法中临时保存数据

3、成员变量与局部变量的区别:

(1)定义域不同:

成员变量可以被本类的所有方法中使用,也可以在其他和当前类有关系的类中的方法使用;

局部变量只能在定义它的方法中使用;

(2)初始值不同:

Java会给成员变量一个初始值;

Java不会给成员变量初始值;

(3)在同一个方法中,不允许有同名的局部变量;在不同的方法中,可以有同名的局部变量;同时,两种变量同名时,局部变量具有更高的优先级。

 

五、Java中的构造方法

1、使用new+构造方法 创建一个新的对象

2、构造方法是定义在Java类中的一个用来初始化对象的方法

   构造方法与类同名且没有返回值

3、构造方法的语法格式:

4、构造方法的使用:

(1)无参构造方法:

main():

Telephonephone=new Telephone();

class Telephone:

publicTelephone(){

System.out.println(“Telephone构造方法执行了”);

}

(2)带参构造方法的使用:

main():

Telephonephone2=new Telephone(4.0f,2.0f,2.0f);

class Telephone:

publicTelephone(float newScreen,float newCpu,float newMem){

screen=newScreen;

cpu=newCpu;

mem=newMem;

}

5、当没有指定构造方法时,系统会自动添加无参的构造方法;

当有指定构造方法时,无论是有参、无参的构造方法,都不会自动添加无参的构造方法;

6、构造方法的重载:方法名相同,但参数不同的多个方法,调用时会自动根据不同的参数选择相应的方法

7、构造方法不但可以给对象的属性赋值,还可以保证给对象的属性赋一个合理的值。

   PS:保证赋值合理的解决方法为在方法中加上if语句,对值进行。

 

六、Java中的static使用之静态变量

我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立。然而在某些时候,我们更希望该类所有的对象共享同一个成员。这就是静态变量。


Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问。(鉴于他作用的特殊性更推荐用类名访问)


使用 static 可以修饰变量、方法和代码块。


例如,我们在类中定义了一个 静态变量 hobby ,操作代码如下所示:


运行结果:


要注意:静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收!


七、Java中static使用之静态方法

与静态变量一样,我们也可以使用 static 修饰方法,称为静态方法或类方法。

其实之前我们一直写的 main 方法就是静态方法。

注意:静态方法是属于类的,内存必须为它分配内存空间,这个空间一直由静态方法占用,内存管理器不会由于静态方法没有被调用而将静态方法的存储空间收回,这样如果将所有的方法都声明为静态方法,就会占用大量的内存空间,最后是系统变慢。而普通的成员方法是由对象调用的,内存并不会一直为起分配内存,只有调用的时候才为其分配存储空间,而当其没有被调用时,存储空间就会被内存管理其收回,释放没有用的空间,提高的系统的运行速率!


静态方法的使用如下:


运行结果:


需要注意的是:

1、 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。如:

如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。如:


2、 在普通成员方法中,则可以直接访问同类的非静态变量和静态变量,如下所示:


3、 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。如:


 八、Java中static使用之静态初始化块

Java 中可以通过初始化块进行数据赋值。如:



在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块。如果使用 static 修饰初始化块,就称为静态初始化块。

需要特别注意:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。

例如:

运行结果:

通过输出结果,我们可以看到,程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块。


0 0
原创粉丝点击