Java是面向对象的程序设计语言,Java语言提供了定义类、定义属性、方法等最基本的功能。类可被认为是一种自定义的数据类型,可以使用类来定义变量,所有使用类定义的变量都是引用变量,它们将会引用到类的对象,对象由类负责创建。类用于描述客观世界里某一类对象的共同特征,而对象则是类的具体存在,Java程序使用类的构造器来创建该类的对象。

Java也支持面向对象的三大特征:封装、继承和多态,Java提供了private、protected和public三个访问控制修饰符来实现良好的封装,提供了extends关键字来让子类继承父类,子类继承父类将可以继承到父类的属性和方法,如果访问控制允许,子类实例可以直接调用父类里定义的方法。继承是实现类复用的重要手段,除此之外,也可通过组合关系来实现这种复用,从某种程度上来看,继承和组合具有相同的功能。使用继承关系来实现复用时,子类对象可以直接赋给父类变量,这个变量具有多态性,编程更加灵活,而利用组合关系来实现复用的时候,则不具备这种灵活性。

构造器用于对类实例进行初始化操作,构造器支持重载,如果多个重载的构造器里包含了相同的初始化代码,则可以把这些初始化代码放置在普通初始化块里完成,初始化块总在构造器执行之前被调用。除此之外,Java还提供了一种静态初始化块,静态初始化块用于初始化类,在类初始化阶段被执行。如果继承树里的某一个类需要被初始化时,系统将会同时初始化这棵继承树里的所有类。

类和对象

Java是面向对象的程序设计语言,类是面向对象的重要内容,我们可以把类当成一种自定义数据类型,可以使用类来定义变量,这种类型的变量统称为引用型变量。也就是说,所有类是引用数据类型。

定义类

面向对象的程序设计过程中有两个重要概念:类(class)和对象(object,也被称为实例,instance),其中类是某一批对象的抽象,可以把类理解成某种概念;对象才是一个具体存在的实体,从这个意义上来看,我们日常所说的人,其实应该是人的对象,而不是人类。

Java语言是面向对象的程序设计语言,类和对象是面向对象的核心。Java语言提供了对创建类和创建对象简单的语法支持。

Java语言里定义类的简单语法如下:

[修饰符]class类名

{

零个到多个构造器定义..

零个到多个属性…

零个到多个方法…

}

在上面的语法格式中,修饰符可以是public、final,或者完全省略这两个修饰符,类名只要是一个合法的标识符即可,但这仅仅满足的是Java的语法要求;如果从程序的可读性方面来看,Java类名必须是由一个或多个有意义的单词连缀而成,每个单词首字母大写,其他字母全部小写,单词与单词之间不要使用任何分隔符。

对一个类定义而言,可以包含三种最常见的成员:构造器、属性和方法,三种成员都可以定义零个或多个,如果三种成员都只定义零个,就是定义了一个空类,这没有太大的实际意义。

类里各成员之间的定义顺序没有任何影响,各成员之间可以相互调用,但需要指出的是,static修饰的成员不能访问没有static修饰的成员。

属性用于定义该类或该类的实例所包含的数据,方法则用于定义该类或该类的实例的行为特征或功能实现。构造器用于构造该类的实例,Java语言通过new关键字来调用构造器,从而返回该类的实例。

构造器是一个类创建对象的根本途径,如果一个类没有构造器,这个类通常将无法创建实例。因此,Java语言提供了一个功能:如果程序员没有为一个类编写构造器,则系统会为该类提供一个默认的构造器。一旦程序员为一个类提供了构造器,系统将不再为该类提供构造器。

定义属性的语法格式如下:

[修饰符] 属性类型 属性名 [=默认值]

属性语法格式的详细说明如下:

1、修饰符:修饰符可以省略,也可以是public、protected、private、static、final,其中public、protected、private三个最多只能出现其中之一,可以与static、final组合起来修饰属性。

2、属性类型:属性类型可以是Java语言允许的任何数据类型,包括基本类型和现在介绍的引用类型。

3、属性名:属性名则只要是一个合法的标识符即可,但这只是从语法角度来说的;如果从程序可读性角度来看,属性名应该由一个或多个有意义的单词连缀而成,第一个单词首字母小写,后面每个单词首字母大写,其他字母全部小写,单词与单词之间不需使用任何分隔符。

4、默认值:定义属性还可以定义一个可选的默认值。

提示:属性是一种比较传统、也比较符合汉语习惯的说法,在Java的官方说法里,属性被称为Field,因此有的地方也把属性翻译为字段。

定义方法的语法格式如下:

[修饰符] 方法返回值类型 方法么(形参列表)

{

//由零条到多条可执行性语句组成的方法体

}

方法语法格式的详细说明如下:

1、修饰符:修饰符可以省略,也可以是public、protected、private、static、final、abstract、其中public、protected、private三个最多只能出现其中之一;abstract和final最多只能出现其中之一,它们可以与static组合起来修饰方法。

2、方法返回值类型:返回值类型可以是Java语言允许的任何数据类型,包括基本类型和引用类型;如果声明了方法返回值类型,则方法体内必须有一个有效的return语句,该语句返回一个变量或一个表达式,这个变量或者表达式的类型必须与此处声明的类型匹配。除此之外,如果一个方法没有返回值,则必须使用void来声明没有返回值。

3、方法名:方法名命名规则与属性命名规则基本相同,但通常建议方法名以英文中的动词开头。

4、形参列表:形参列表用于定义该方法可以接受的参数,形参列表由零组到多组“参数类型形参名”组合而成,多组参数之间以英文逗号(,)隔开,形参类型和形参名之间以英文空格隔开。一旦在定义方法时指定了形参列表,则调用该方法时必须传入对应他的参数值——谁调用方法,谁负责为形参赋值。

方法体里多条可执行性语句之间有严格的执行顺序,排在方法体前面的语句总是先执行,排在方法体后面的语句总是后执行。

static是一个特殊的关键字,它可用于修饰方法、属性等成员。static修饰的成员表明它是属于这个类共有的,而不是属于该类的单个实例,因为通常把static修饰的属性和方法也称为类属性、类方法。不使用static修饰的普通方法、属性则属于该类的单个实例,而不是属于该类。因为通常把不使用static修饰的属性和方法也称为实例属性、实例方法。

提示:由于static在英文直译就是静态的意思,因此有时也把static修饰的属性和方法称为属性和静态方法,把不使用static修饰的属性和方法称为非静态属性和非静态方法。静态成员不能直接访问非静态成员。

构造器是一个特殊的方法,定义构造器的语法格式与定义方法的语法格式很像,定义构造器的语法格式如下:

[修饰符] 构造器名 (形参列表)

{

//由零条到多条可执行性语句组成的构造器执行体

}

构造器语法格式的详细说明如下:

1、修饰符:修饰符可以省略,也可以是public、protected、private其中之一。

2、构造器名:构造器名必须和类名相同。

3、形参列表:和定义方法形参列表的格式完全相同。

值得指出的是,构造器不能定义返回值类型声明,也不能使用void定义构造器没有返回值。如果为构造器定义了返回值类型,或使用void定义构造器没有返回值,编译时不会出错,但Java会把这个所谓的构造器当成方法来处理。

(来源:疯狂软件教育)

java定义类属性方法_java定义类、属性、方法相关推荐

  1. score在java中是什么意思_java:定义学生类Student, 其中属性有 name, id, score ,分别表示姓名,学好,成绩........

    展开全部 定义一个表示学生信息的类Student,要求如下: (1)类Student的成员变量: sNO 表示学号:sName表示姓62616964757a686964616fe59b9ee7ad94 ...

  2. java设计一个bank类实现银行_java定义一个类实现银行账户的概念。

    2016-11-17 13:40黄瞩信 客户经理 比如,只定义了一个抽象方法run(),而要通过系统用极短的时间.这5s内,此后这个线程就不能进入其它状态,进入消亡状态;+i++). 2,另一方面;, ...

  3. java arrays方法_Java工具类Arrays中不得不知的常用方法

    原标题:Java工具类Arrays中不得不知的常用方法 Arrays 数组操作集数组转List ---asList 这个被"普遍"称为数组转List的方法,可能是Arrays内大家 ...

  4. java哪些类重写equals方法_Java自定义类中重写equals方法

    equals方法的要求: a.自反性:对于任何非空的x,x.equals(x)都应该返回true b.对称性:对于任何引用x和y,当且仅当x.equals(y)返回true时,y.equals(x)也 ...

  5. java 类的重载_Java自学-类和对象 方法重载

    什么是Java 方法重载 方法的重载指的是方法名一样,但是参数类型不一样 步骤 1 : attack方法的重载 有一种英雄,叫做物理攻击英雄 ADHero 为ADHero 提供三种方法 public ...

  6. java设计复数类报告总结_java复数类

    1 编写一个完整的 Java 程序,包括 Complex 和 TestComplex 两个类. 使用复数类 Complex 验证两个复数 1+2i 和 3+4i 相加产生一个新的复数 4+6i . . ...

  7. java字符串常量池长度_Java String类相关知识梳理(含字符串常量池(String Pool)知识)...

    目录 1. String类是什么 1.1 定义 1.2 类结构 1.3 所在的包 2. String类的底层数据结构 3. 关于 intern() 方法(重点) 3.1 作用 3.2 字符串常量池(S ...

  8. java 返回两个值_Java - Number类

    本文不是原创,转载自 https://www.yiibai.com/java/java_numbers.html 通常,当要在Java编程中使用数字时,可以使用原始数据类型,如:byte,int,lo ...

  9. java中日历类的用法_java日期类的用法

    java日期类的用法 不管你是处理财务交易还是计划着下一步的行动,你都要知道怎样在Java中建立,使用和显示日期.这需要你简单的查阅一下相应类的API参考:一个日期可以创建3个相关类的对象.这篇文章告 ...

最新文章

  1. android封装多肽,深度探索C++对象模型之(四)...-Android.animation cts fail-Rails helper_169IT.COM...
  2. 1 字节的 utf-8 序列的字节 1 无效_记住:永远不要在MySQL中使用UTF8
  3. 最短路径——dj+floyd+spfa(hdu2544)
  4. 1137.第N个泰波那契数
  5. MySQL主从复制遇到的问题以及如何解决
  6. 异步ajax动态实现级联,JQuery异步加载无限下拉框级联功能实现示例
  7. 双轨制直销软件功能介绍
  8. 中兴笔试c语言,中兴面试C语言题1
  9. 图像处理学习--银行卡号码识别(1)
  10. 基于Python获取一些打印机简单信息
  11. sentaurus器件仿真(sdevice部分)(二)
  12. 【控制】PID和LQR
  13. 网页游戏的项目设计方案分享
  14. 微信小程序样式Flex Box精通课程-Flex容器的属性-justify-content内容对齐(左中右)
  15. 华为机试二星题--机器人走迷宫
  16. 鸡腿的笑话--鸡腿篇
  17. 心情手札——光头日记
  18. 咱们也真够疯狂的。。
  19. Apache Passenger配置常用参数解读
  20. 【Linux】Ubuntu20网络频繁掉线解决

热门文章

  1. 爱心点击特效php代码,网页点击特效 - 鼠标点击浮现爱心特效
  2. 浪潮8465m4安装linux,NF8465M4 – 常见问题
  3. 用javascript编写网页:1.2css实践:页面布局
  4. 【面试笔试-c/c++】兰亭集势2013校园招聘试题。
  5. 2014-百度 阿里 华为笔试题
  6. bes2300 tws配对_华为、荣耀、小米、JBL都在用,12款内置BES恒玄方案TWS耳机拆解汇总...
  7. DaVinci Resolve Advanced Panel达芬奇调色台
  8. 附上windebug常用调试命令
  9. Vue组件封装 ——button组件
  10. GIF动画导入到FLASH的应用