Java面向对象之类与对象

1. Java中的类

基本概念

在面向对象中,类和对象是最基本、最重要的组成单元。类实际上是表示一个客观世界某类群体的一些基本特征抽象。

  • :描述了一组有相同 属性(特点) 和 方法(行为) 的集合。可以看成一类事物的模板,使用事物的属性特征和行为特征来描述该类事物。
  • 属性:就是该事物的状态信息。
  • 方法:就是该事物能够做什么。

例如,**类:**人类;

属性:名字、性别、体重、身高、年龄;

行为:吃饭、说话、学习;

人类叫张三?人类吃了一碗米饭?“人类”只是一个抽象的概念,它仅仅是一个概念,是不存在的实体!

类的定义

在 Java 中定义一个类,需要使用 class 关键字、一个自定义的类名和一对表示程序体的大括号。完整语法如下:

[public][abstract|final]class<class_name>[extends<class_name>][implements<interface_name>] {
    // 定义属性部分
    <property_type><property1>;
    <property_type><property2>;// 定义方法部分
    function1();
    function2();}

提示:上述语法中,中括号“[]”中的部分表示可以省略,竖线“|”表示“或关系”,例如 abstract|final,说明可以使用 abstract 或 final 关键字,但是两个关键字不能同时出现。

Java 类名的命名规则:

1.类名应该以下划线(_)或字母开头,最好以字母开头。

2.第一个字母大写,如果类名由多个单词组成,则每个单词的首字母最好都大写。

3.类名不能为 Java 中的关键字,例如 boolean、this、int 等。

4.类名不能包含任何嵌入的空格或点号以及除了下划线(_)和美元符号($)字符之外的特殊字符。

创建一个新的类,就是创建一个新的数据类型。实例化一个类,就是得到类的一个对象。因此,对象就是一组变量和相关方法的集合,其中变量表明对象的状态和属性,方法表明对象所具有的行为。定义一个类的步骤如下所述:

(1) 声明类。编写类的最外层框架,声明一个名称为 Person 的类。

public class Person {    // 类的主体
}

(2) 编写类的属性。类中的数据和方法统称为类成员。其中,类的属性就是类的数据成员。通过在类的主体中定义变量来描述类所具有的特征(属性),这里声明的变量称为类的成员变量。
成员变量又分为类变量(有static修饰)和实例变量(没有static修饰)

声明成员变量的语法如下:

[public|protected|private][static][final]<type><variable_name>

各参数的含义如下。

  • public、protected、private:用于表示成员变量的访问权限。(不写就是default)

    作用域当前类同一包子孙类其它包
    public
    protected
    default(friendly)
    private
  • static:表示该成员变量为类变量,也称为静态变量。

    Java虚拟机(JVM)只为静态变量分配一次内存,在加载类的过程中完成静态变量的内存分配。由于静态变量属于类(类级别),而不是某个对象所有,因而可以直接通过类名访问这类变量。通过类名.属性的方式访问静态变量。

  • final:在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。

    final修饰变量时表示将该成员变量声明为常量,其值无法更改(final修饰对象时维护的是其引用地址不变,而不是对象的属性不变)。对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象,但该引用所指向的对象的内容是可以发生变化的。

  • type:表示变量的类型。

  • variable_name:表示变量名称。

可以在声明成员变量的同时对其进行初始化,如果声明成员变量时没有对其初始化,则系统会使用默认值初始化成员变量。

初始化的默认值如下:

数据类型默认值
byte0
short0
int0
long0L
float0.0f
double0.0
booleanfalse
char\u0000代表字符为空
引用类型null

定义类的成员变量的示例如下:

public class Student {    
    public String name;    // 姓名    
    final int sex = 0;    // 性别:0表示女孩,1表示男孩    
    private int age;    // 年龄
}

上述示例的 Student 类中定义了 3 个成员变量:String 类型的 name、int 类型的 sex 和 int 类型的 age。其中,name 的访问修饰符为 public,初始化值为 null;sex 的访问修饰符为 friendly(默认),初始化值为 0,表示性别为女,且其值无法更改;age 的访问修饰符为 private,初始化值为 0。

(3) 编写类的方法。类的方法描述了类所具有的行为,是类的方法成员。可以简单地把方法理解为独立完成某个功能的单元模块。

一般情况下,定义一个方法包含以下语法:

修饰符 返回值类型 方法名(参数类型 参数名){
	...    
	方法体    
	...    
	return 返回值; 
}

方法包含一个方法头和一个方法体。下面是一个方法的所有部分:

  • 修饰符:修饰符是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
  • 返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void
  • 方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
    -参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
  • 方法体:方法体包含具体的语句,定义该方法的功能。

下面来定义一个简单的 Person 类。

public class Person {    
    private String name;    // 姓名    
    private Integer age;    // 年龄
    private Integer sex;	// 性别
    
    public void tell() {           // 定义一个方法        
        System.out.println(name+"今年"+age+"岁!");    
    }
}

如上述代码,在 Person 类中首先定义了三个属性,分别为 name 、age和sex,然后定义了一个名称为 tell() 的方法。

以上程序当中name、age、sex都是属性,它们都是成员变量中的实例变量,所谓实例变量就是定义在类中但在任何方法之外(New出来的均有初始化)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java是一种非常流行的面向对象编程语言,它的核心概念之一就是类与对象。 类是用来描述具有相同属性和行为的一组对象的模板。可以把类看作是一种自定义的数据类型。在类中,我们可以定义各种属性和方法来描述对象的特征和行为。属性是对象的状态,而方法则是对象的行为。 对象是类的具体实例化,在内存中占有一定的空间。可以把对象看作是类的变量,通过实例化类来创建对象。对象可以访问类中定义的属性和方法,并且每个对象都有自己独立的状态。 通过类和对象的组合使用,我们可以实现面向对象编程的核心思想:封装、继承和多态。 封装是指将数据和操作数据的方法封装在类的内部,隐藏内部实现细节,只提供公共的访问方法。这样可以保证数据的安全性和一致性,提高代码的可维护性和重用性。 继承是指通过已有的类创建新的类,提供新类所具有的属性和方法,并且可以重写或扩展父类的方法。继承可以减少代码的冗余,提高代码的复用性和可扩展性。 多态是指同一类型的对象在调用同一个方法时,可以有不同的行为表现。它通过方法重载和方法重写实现。多态可以提高代码的灵活性和扩展性,让我们能够编写更加通用和可复用的代码。 总之,类与对象Java面向对象编程的基石,它们的灵活组合使用可以让我们编写出高质量、模块化的代码,并且提高了代码的可维护性和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值