Java面向对象——类的成员

Java面向对象——类的成员

摘要:本文主要介绍了类的常见成员。

属性

属性称为成员变量,一般来讲不用赋值,因为有默认值,另外显式赋值没有意义会导致所有由此类创建对象都是此值。

默认值

Boolean类型成员变量的默认值是false。

Int类型成员变量的默认值是0。

Double类型成员变量的默认值是0.0。

String类型成员变量的默认值是null。

Char类型成员变量的默认值是\u0000。

类变量

类变量也称为静态变量,在类中以static关键字声明,但必须在方法构造方法和语句块之外。

静态变量在程序开始时创建,在程序结束时销毁。

静态变量储存在静态存储区。经常被声明为常量,很少单独使用static声明变量。

默认值和实例变量相似。数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。

实例变量

实例变量声明在一个类中,但在方法、构造方法和语句块之外。

实例变量在对象创建的时候创建,在对象被销毁的时候销毁。

访问修饰符可以修饰实例变量。

实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息。

实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定。

局部变量

局部变量声明在方法、构造方法或者语句块中。

局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁。

访问修饰符不能用于局部变量。

局部变量只在声明它的方法、构造方法或者语句块中可见。

局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

方法

方法就是用来完成解决某件事情或实现某个功能的办法。

定义

在Java中,声明一个方法的具体语法格式如下:

1 修饰符 返回值类型 方法名(参数类型 参数名, 参数类型 参数名, ... , 参数类型 参数名) {
2     执行语句;
3     return 返回值;
4 }

修饰符:

方法的修饰符比较多,有对访问权限进行限定的,有静态修饰符static,还有最终修饰符final等,这些修饰符在后面的学习过程中会逐步介绍。

返回值类型:

用于限定方法返回值的数据类型,返回给调用方,返回类型可以是任意类型。

如果不需要返回值,则写void,也不需要写return和返回值。如果需要返回值,则需要写一个返回类型,并且return后的返回值需要和返回类型一致。

方法名:

功能块的名字,命名规则和变量命名规则一样。

参数类型和参数名:

参数类型用于限定调用方法时传入参数的数据类型,可以为任意类型,参数类型和返回类型没有任何关系。

参数名是一个变量,用于接收调用方法时传入的数据。

参数:

参数类型和参数名组成参数。

参数可以有多个,中间用逗号隔开。

方法定义时参数称为形式参数,简称形参。

方法调用时参数称为实际参数,简称实参。

形参和实参的类型、个数、顺序必须一致,名字没有要求。

执行语句:

里面可以写任何逻辑语句,表示的是此方法的具体功能。

return和返回值:

return用于结束方法以及返回方法指定类型的值。

返回值是被return语句返回的值,该值会返回给调用者。

调用

方法的调用可以通过如下方式调用:

1 类型 变量名 = 对象实例.方法名(参数);

但是在不同的情况下又有不同的区分,有的可以不写或者不能写。

是否有参数:

如果有参数,那么需要在括号中填写参数,多个参数用逗号分隔: 类型 变量名 = 对象实例.方法名(参数, 参数); 。

如果没有,则不需要填写参数: 类型 变量名 = 对象实例.方法名(); 。

是否有返回值:

如果方法有返回值,那么需要用接收返回值,也可以不接收,但建议用对象接收: 类型 变量名 = 对象实例.方法名(参数); 。

如果没有返回值,则不需要接收返回值: 对象实例.方法名(参数); 。

是否在当前类中使用:

如果在当前类中使用,则可以直接调用,不需要通过对象实例调用: 类型 变量名 = 方法名(参数); 。

如果在其他类中使用,则需要通过对象实例调用: 类型 变量名 = 对象实例.方法名(参数); 。

如果是被statis修饰的方法,则可以通过类名调用: 类型 变量名 = 类名.方法名(参数); 。

参数传递

参数传递是指,调用方法时,将实参的值传递给形参过程。

定义方法时,参数列表中的变量,我们称为形式参数。调用方法时,传入给方法的数值,我们称为实际参数。

当调用方法时,如果传入的数值为基本数据类型(包含String类型),形式参数的改变对实际参数不影响。

当调用方法时,如果传入的数值为引用数据类型(String类型除外),形式参数的改变对实际参数有影响。

重载

同一个类中,方法名相同,参数列表不同,这种现象称为方法重载(overload)。

所谓的参数不一样,主要有两点,第一是参数的个数不一样,第二是参数的类型不一样。只要这两方面有其中的一方面不一样就可以构成方法的重载了。

重写(覆盖)

方法覆盖是说子类重新定义了父类的方法,是在两个类中,必须有相同的方法名,相同的参数列表,相同的返回类型。

被重写的方法不能拥有比父类的方法更严格的访问控制权限。

构造方法不能被继承,因此不能被重写,在子类中只能通过super关键字调用父类的构造方法。

类的构造方法(构造器)

构造方法是类用于创建对象的一个特殊的方法,当类创建对象时,就会调用类的构造方法。

语法

1 修饰符 类名(参数列表) {
2     方法体;
3 }

说明

构造方法没有返回类型,也不能使用void关键字。

构造方法的方法名必须和类名一致。

如果在类中没有定义构造方法,那么编译器会提供默认的构造方法,默认的构造方法没有参数列表,也没有方法体。

如果在类中定义了构造方法,那么编译器就不会提供默认的构造方法。

构造方法必须使用new关键字进行调用: new 类名(); 或 new 类名(参数); 。

初始化块

说明

初始化块分为静态初始化块和动态初始化块,优先于构造方法执行,经常执行初始化信息。

静态初始化块和普通初始化块都可以有多个,都可以写任何逻辑语句,不能定义方法。

执行顺序

静态成员变量初始化和静态初始化块的执行顺序由定义位置决定,从上往下执行。

成员变量初始化和初始化块的执行顺序由定义的位置决定,从上往下执行。

最后执行构造方法。

普通初始化块和静态初始化块对比

相同点:

默认执行顺序都是从上往下,都可以有多个。

不同点:

普通初始化块能执行多次,静态初始化块只执行一次。

普通初始化块实在对象创建后执行,静态初始化块是在类加载时执行。

普通初始化块可以访问普通成员和静态成员,静态成员初始化块只能访问静态成员。

原文地址:https://www.cnblogs.com/shamao/p/10907009.html

时间: 2024-11-10 03:04:45

Java面向对象——类的成员的相关文章

Java面向对象-类与对象

Java面向对象-类与对象 类与对象的关系 我们通俗的举个例子,比如人类是一种类,张三这个人就是人类的具体的一个个体,也就是java中的对象:这就是一个类与对象的关系: 类的定义 下面看实例 类的创建和使用 看下面实例 我们在com.java1234.chap03.sec01包下新建一个Person类 1 package com.java1234.chap03.sec01; 2 3 /** 4 * Person类 文件名和类名必须一致 5 * @author user 6 * 7 */ 8 pu

JAVA 面向对象 类和对象

本页面更新日期: 2016年07月17日 前言 Java 是面向对象的程序设计语言, Java 语言提供了 定义类, 成员变量, 方法 等基本功能. 类 可以被认为是一种自定义的数据类型. 可以使用类来 定义变量,所有使用类定义的变量都是 引用变量. 它们将会引用到 类的对象. 类用于描述客观世界里 某一类对象的共同特征. 而对象则是 类的具体存在. Java 使用 类的构造器 来创建该类的对象. Java 也支持面向对象的三大特征: 封装/继承/多态 Java提供了 private / pro

Java面向对象——类和对象

java面向对象的三大特征:封装.继承和多态. 类与对象 所有类是引用数据类型. 对于一个类定义而言,包含三种最常见的成员:构造器.属性.方法,三 种成员可以定义多个或零个,当为零个时,定义的是一个空类. 类里面各成员之间的定义顺序没有任何影响,各成员之间可以相互调用. 一.定义类 1,定义类的语法: [修饰符] class 类名 { 零个到多个构造器定义... 零个到多个属性... 零个到多个方法... } 修饰符:可以是public.final等 类名:是合法的标识符即可,但从程序的可读性方

【IOS 开发】Object - C 面向对象 - 类 , 对象 , 成员变量 , 成员方法

. 一. 类定义 类定义需要实现两部分 : -- 接口部分 : 定义类的成员变量和方法, 方法是抽象的, 在头文件中定义; -- 实现部分 : 引入接口部分的头文件, 实现抽象方法; 1. 接口部分定义 (1) 接口部分定义格式 接口部分定义格式 : @interface className : superClassName { type _variableName; ... ... } - (type) methodName : type parameterName; @end -- 接口定义

Python学习 :面向对象 -- 类的成员

类的成员 一.字段 - 字段可以分为'普通字段'和'静态字段'两种 - 普通字段(保存在对象中,执行时只能通过对象来进行访问) - 静态字段(保存在类中,在内存中只保存一份数据(可以有效地节约内存的空间),执行时可以通过对象来访问,也可以通过类来访问) class Province: country = '中国' # 静态字段 def __init__(self, name): self.name = name # 普通字段 def show(self): # 方法 print(self.nam

java面向对象——类

OOP--Object Oriented Programming是java最大的特点,而且他不和C++一样,java属于彻头彻尾的面向对象,每一个文件都是以类的形式出现,main函数也包括在一个大类中. 1.关于类的声明定义如下模板: class User{ String name; //成员变量 int age; public void  show() { System.out.println("用户姓名是:"+name+",年龄是:"+age); //成员方法

9.面向对象-----类的成员之属性(field)

一.语法格式 权限修饰符 数据类型 属性名 = 属性值; 说明: 1.权限修饰符:类中的属性可以被private.缺省.protected.public等权限修饰符修饰: 2.数据类型:可以是基本数据类型和引用数据类型 3.属性名:符合标识符的命名规则和规范 举例: class Person{ private String name; public int age; String hobby; } 二.成员变量(属性)与局部变量 相同点: 1.都是先声明,后使用: 2.变量都有其对应的作用域 不

Java面向对象---类与对象的关系

类是对某一类事物的描述,是抽象的.概念上的意义.对象是实际存在的该类事物的每一个个体,也被称为实例. 创建对象:包括声明对象和实例化对象 Person person;//声明 person = new Person();//实例化 创建对象内存划分 1.声明开辟一个栈空间 2.实例化开辟一个堆内存空间 3.声明指向实例化:栈空间的person指向堆空间的实例化

Java面向对象-类与方法

类 一个类即一个对象 声明 作用域 class 类名{ //属性 //方法 } 作用域可不写,详见作用域 方法 方法即函数 声明 作用域 返回类型 方法名(参数1, 参数2, -){ //方法体内容 } e.g. public tell (String name){ System.out.println("我叫"+name); } 构造方法 声明一个类时会自动调用的函数,用于确定声明该类时需要的参数 没有返回类型和返回值 方法名与类名相同 一个类可以有多个构造方法,默认有空构造方法,当