您的位置:首页 > 娱乐 > 八卦 > Java小白入门到实战应用教程-类和对象

Java小白入门到实战应用教程-类和对象

2024/12/23 4:50:30 来源:https://blog.csdn.net/qq_40825301/article/details/140829820  浏览:    关键词:Java小白入门到实战应用教程-类和对象

前言

在前面的内容中我们已经掌握了变量和方法(函数)的语法及应用。然后在写样例代码的过程中大家应该也注意到了,我们所有的代码都是在class块里面的,我们前面也简单提到了class是什么东西。

那今天我们就来了解Java中非常非常重要的概念:类

在Java编程中,类(Class)是构建程序的基本构件之一。我们在最开始的时候就提到了java是面向对象的语言,而类是对象的模板,通过类去创建对象,类中定义了对象的属性(变量)和方法(行为)。

正文

语法

在Java中,使用class关键字去定义类,然后{}中为类体内容,类中可以声明变量和方法。

public class 类名称 {  // 类的属性(变量)  dataType 变量名称;  // 类的构造方法  public 类名称() {  // 初始化代码  }  // 类的其他方法  public void 方法名() {  // 方法体  }  
}

命名规范

按照我们的开发规范,通常类名称首字母大写。然后采用大驼峰命名法,而变量名和方法名通常采用小驼峰命名法,也就是首个单词的首字母小写其余单词的首字母大写。

属性

在上面的语法中,我们可以看到在类中可以定义属性,也叫做变量。我们之前学习变量的时候实在main方法中去定义的,现在是定义在了方法外。

是的,变量可以定义在方法外,称为成员变量,而定义在方法内的变量称为局部变量。

而局部变量和成员变量的区别主要体现在作用域和生命周期上,成员变量的作用域是在整个类文件中的,而局部变量的作用域只体现在它所在的局部范围内,比如方法内。所以成员变量的作用域大于局部变量,在方法内也可以去调用成员变量。

至于他们详细区别,我们放在后面单独的章节中去进行详解。

构造方法

在语法中,有一段代码叫做构造方法,也叫构造函数。

它是用于在通过类去创建对象时初始化对象的属性的方法,简单说就是创建对象时给对象的属性进行赋值操作的方法。构造方法是一种特殊的函数。

当使用new关键字创建类的实例时,构造方法会被自动调用,以初始化新创建的对象。

构造方法具有以下几个特点:

  1. 名称特殊:构造方法的名称必须与类名完全相同(包括大小写)。
  2. 无返回类型:构造方法没有返回类型,甚至连void都不写。
  3. 重载:和类的其他方法一样,构造方法也可以重载。这意味着一个类可以有多个构造方法,只要它们的参数列表不同。重载的概念后面再将。
  4. 初始化对象:构造方法的主要目的是初始化新创建的对象。你可以在其中为对象的属性设置初始值,或者执行一些必要的初始化步骤。
  5. 自动调用:当使用new关键字创建类的实例时,会自动调用相应的构造方法。

当我们在类中没有写构造函数的时候,类中会自动有个默认无参的构造函数。

但是当我们写了有参的构造函数后,那个默认无参的构造函数就不存在了,如果需要的话可以手动写上。

样例代码

我们在了解了类的语法后,现在去写一个demo。

比如我们想定义一个小狗的类,小狗通常都会给它取一个名字,然后小狗通常也有年龄,然后小狗有一些行为:它可以吃东西,可以叫“汪汪”

public class Dog {String  name;int  age;public Dog(String name, int age) {this.name = name;this.age = age;}public void say(){System.out.println("汪汪!!");}public void eat(){System.out.println("吃了一个鸡腿~");}
}

解释:

我们创建一个class,类名叫做Dog,然后狗的名字和年龄都是狗的属性,所以定义了两个变量,然后狗具有吃和叫的行为,所以定义了两个方法(函数)。

然后还有一个有两个参数的构造函数,通过这个构造函数取给类中的两个属性去进行赋值。

创建对象

创建对象通过关键字”new“。

语法:

对象类型  变量名 = new  对象类型();

其实和定义变量的格式差不太多,因为我们创建的对象需要赋值给一个变量,然后用变量去使用这个对象。

样例

那现在我们用这个类去创建对象

public class Dog {String  name;int  age;public Dog(String name, int age) {this.name = name;this.age = age;}public void say(){System.out.println(this.name + " 汪汪");}public void eat(){System.out.println(this.name + " 吃了一个鸡腿~");}public static void main(String[] args) {Dog  wangcai = new Dog("旺财",3);wangcai.say();wangcai.eat();}
}

解释:

我们加了一个main函数作为程序的入口,然后创建Dog类的对象,因为在Dog类中定义了有两个参数的构造函数,所以使用new关键字创建对象的时候就会自动调用构造函数,所以我们创建对象时需要传两个参数去给到类里面的构造函数。如果我们在类中还定义了无参的构造函数,那么new对象的时候就可以不传参数,因为会自动调用类中无参的构造函数。

所以Dog wangcai = new Dog(“旺财”,3);这句的意思就是通过Dog类创建了一个对象wangcai,然后传了两个参数给Dog类的构造函数,所以这个wangcai对象中的name属性值就为”旺财“,age属性值就为3。

然后我们通过对象名去调用对象的方法。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com