Java面对对象程序设计:第一章 面对对象
1.1 类与对象
1.1.1类和对象的概念
( 如果不想看这些长篇大论,可以直击跳到下面的案例。)
类是抽象的,对象是具体的;类是对象的模板,图纸;对象是类的一个实例,是一个实实在在的个体,一个类可以对应多个对象。
1.1.2 类的语法结构
[修饰符] class 类名{定义构造方法;定义属性;定义方法;
}
在上述的语法格式中,修饰符可以是public,final,abstract或完全省略这3个修饰符,而类名只要一个合法的标识符就行,当然从程序的可读性而言,java类名必须由一个或多个由意义的单词组合而成的,每个单词首字母必须大写,其它字母全部小写。单词与单词之间不要使用任何分隔符。
!注意:类中各成员之间的定义顺序对程序没有任何影响。
1.1.3 对象创建和使用
在java语言中创建对象的根本途径是,通过new关键词通用某个类的构造方法,即可创建该类的实例。
对象的创建和使用:
对象的创建
类名 对象名 = new 类名();
方法的调用
对象名.方法名([参数]);
当一个对象被创建成功后,该对象将保存在堆内存中,java程序不允许直接访问堆内存中的对象,只能通过该对象的引用访问该数组。无论是数组还是对象,都只能通过引用来访问它们。
!注意:无论是数组还是对象,当程序访问引起用变量的属性或方式时,实际时访问该引用变量所引用的数组,对象的属性或方法
1.2 方法详解
1.2.1 方法声明
方法的声明包含方法头和方法体两部分,方法的声明格式如下:
[<修饰符>] <返回值类型> <方法名> ([参数列表]){方法体}
方法声明说明如下:
(1)修饰符,表示方法的访问权限。
(2)返回值类型,为该方法返回值的类型,如该方法没有返回值,则该方法的返回值类型为void
(3)参数列表,指定在调用时,应该传递的参数的个数和类型。
(4)对于有返回值类型的方法,方法体中至少有一条return语句,形式为return(表达式)。
(5)方法不能嵌套定义,即不能在方法中声明其它的方法。
1.2.2 方法的调用
(1)在类main() 方法中创建可以调用方法的实例。
(2)将实例赋值给指定的引用变量,通过引用“变量.方法名”的形式调用方法。
说明:如果方法的返回值类型为void,说明方法没有返回值,所以在main()方法中调用时,可以将子方法作为一条语句直接在程序中使用。
1.3 可变形参方法
1.3.1 可变方法声明
从JDK1.5之后,java允许定义形参个数可变的参数,即可允许方法指定数量不确定的形参。如果在定义方法时,在最后一个形参的类型后增加“...”,则表明该形参可以接受多个参数值,多个参数值被当成数组传染。
可变方法的声明格式如下:
[<修饰符>] <返回类型> <方法名> (变量类型...变量名){方法体}
方法声明说明:变量类型为任意数据类型,在变量类型和变量名之间用“...”表示.其中“...”不是省略号,而是定义参数类型的方式。
可变参数的特点如下:
(1)只能出现在参数列表的最后
(2)“...”位于变量类型和变量名之间,前后有无空格都可以。
(3)调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中可以一数组的形式访问可变参数。
1.3.2 可变方法调用
直接看代码:
public class VarargsTest{//定义形参个数可变的方法public static void testVarargs(int x,String...users){for(String user:users){System.out.println(user);}}public static void main(String[] args){//采用可变个数形参的方法调用testVarargs(3,"张晓文","王艺儒","李晨生")}
}
你可以把代码直接复制过去结果。
1.3.3 可变参数与数组参数的区别
1.定义方式不一样
(1)采用可变个数参数来定义方法,代码如下:
public static void testVarargs(String...users);
(2)采用数组形参来定义方法,代码如下:
public static void testVarargs(String[] users);
2.调用的方式不一样
(1)采用可变个数形参的方法调用,代码如下:
testTarargs("陈夏文","万怡然","李晨生");
(2)采用数组形参的方法调用,代码如下:
testVarargs(new String[]{"陈夏文","万怡然","李晨生"});
3.参数位置不同
如果有多个参数,数组形式的参数可以处于形参的任意位置,但是个数可变的形参处于形参列表的最后,即一个方法最多只能有一个个数可变的形参。
1.4 构造方法
1.4.1 构造方法的定义
在类定义中有一类特殊的方法,此方法的名称与类名完全一致,在创建对象是用于成员变量进行初始化,此类方法被称为构造方法。
1.4.2 构造方法
创建一个构造方法和创建一个其它方法的过程是相同的,但需要注意的是,类中的构造方法的名称必须与此类的名称完全相同;此外,构造方法不能有返回值类型,在构造方法法名称前面也不能使用void关键词进行修饰。
构造方法的格式如下:
public 类名(){}
1.5 属性
属性是直接定义在类里面的又称成员变量
案例:
讲这么多也没什么大用,还是需要练习,下面这题将用到这篇文章所要讲到的知识
题目如下:
需求:
类:
1、类名:Yasuo
2、属性:
- 剑的名字
- 技能一(斩钢闪)
- 技能二(风之壁障)
- 技能三(踏前斩)
- 技能四(狂风绝息斩 or 哈塞给)
- 方法:
- 构造方法:
参数:剑名
功能:使用参数“剑名”给属性“剑的名字”赋值
- 出击:
参数:可变参数,参数为技能列表
返回值:无
功能:根据接收到的技能列表,施展相应的技能。结果:输出:Yasuo使用xx剑施展了xx技能
例如:
- 接收到的参数列表为“斩钢闪”,剑的名字是“长剑”,则输出:Yasuo使用长剑施展了斩钢闪
- 接收到的参数为斩钢闪、狂风绝息斩,剑的名字是长剑,则输出:Yasuo使用长剑施展了斩钢闪和狂风绝息斩
3、嘲讽
参数:无
返回值:无
功能:对敌方进行嘲讽,输出:好了,我要用手玩了
在主类中调用Yasuo类的出击和嘲讽方法,输出相应的内容
答案如下:
package LOL;public class Yasuo {String name;String skill1 = "斩刚闪";String skill2 = "风之壁障";String skill3 = "踏前斩";String skill4 = "狂风绝息斩";public Yasuo(String name1){name = name1;}public void Chuji(String...skills){String string = "";int a = 0;for(String jinen:skills){if(a == 0){string = string + jinen;}else{string = string + "和" +jinen;}a++;}System.out.printf("Yasuo使用了%s施展了%s技能\n",name,string);}public void Chaofen(){System.out.println("击杀敌人之后原地回城并亮狗牌");}public static void main(String[] args) {Yasuo c = new Yasuo("无尽之刃");c.Chuji(c.skill1,c.skill4);c.Chaofen();}}
如果想看上述语句执行结果,请复制粘贴,自己去运行看看。
好了,我的这篇文章到这里就结束啦,如果还有什么不懂的,请自行去看书,或者自己去找其它文章看,如果你问我为什么这样,那我告诉你——我这是免费的,所以不要抱怨我的文章,因为我也知道我没有写好,所以拜拜了。
Java面对对象程序设计:第一章 面对对象相关推荐
- 第一章 Caché 对象介绍
文章目录 第一章 Caché 对象介绍 Caché 对象体系结构 类定义和类字典 创建类定义 类字典 Caché类库 开发工具 Caché Studio SQL-Based Development X ...
- Java 学习笔记:第一章 Java入门
Java 学习笔记:第一章 Java入门 1.1 计算机语言发展史以及未来方向 1.2 常见编程语言介绍 C语言 C++ 语言 Java语言 PHP 语言 Object-C和Swift 语言 Java ...
- 使用java实现面向对象编程第十章嗖嗖移动业务大厅项目_ACCP6.0使用Java实现面向对象编程-第一章.ppt...
ACCP6.0使用Java实现面向对象编程-第一章 练习--用类图设计Dog和Penguin类 需求说明: 运用面向对象思想抽象出Dog类和Penguin类,画出对应类图 根据类图编写Dog类和Pen ...
- Educoder–Java高级特性(第一章)- IO流【笔记+参考代码】
Educoder–Java高级特性(第一章)- IO流[笔记+参考代码] 第一关 1.下列关于字节和字符的说法正确的是(BC) A.字节 = 字符 + 编码 B.字符 = 字节 + 编码 C.字节 = ...
- python数据符号函数等一切皆对象_第一章:Python高级编程-Python一切皆对象
第一章:Python高级编程-Python一切皆对象 Python3高级核心技术97讲 笔记 1. Python一切皆对象 1.1 函数和类也是对象,属于Python的一等公民 "" ...
- Java编程思想(第十一章持有对象)
1. 第11章 持有对象 java通过使用容器类来储存对象,与普通数组不同的是,普通数组的长度不可变. 1.1. 泛型与类型安全的容器 使用预定义的泛型,它指定了这个容器实例可以保存的类型,通过使用泛 ...
- windows 程序设计 第一章
MD,在公司实在蛋疼,每天捣鼓那些废码子,看到哥们有本windows程序设计,闲来没事总结总结,提高提高,也免得回家闲着蛋都碎了. 第一章简单一些,多是概念,也不用太深入看,当然要是全记住,跟同行吹牛 ...
- Java极速入门系列:第一章Java概述、Java环境、IDEA开发工具
Java极速入门-第一章Java概述.Java环境.IDEA开发工具 一.什么是Java 1.好的编程语言的特性 2.Java的特点 3.Java的运行机制 4.Java的三大体系 5.Java环境 ...
- CG系统提交Java程序_Cg使用说明 第一章 介绍
Cg使用说明 第一章介绍 本章有以下四个部分: "什么是Cg?"介绍Cg编程语言 "顶点.片段和图形管线"描述现代显示硬件的数据流,以及Cg如何与之融为一体的使 ...
最新文章
- got github
- wordpress woodstock主题导入demo xml文件 execution time out
- Beautiful Soup的用法
- SQL Server日期格式转换大全
- 计算机组成原理实用教程课后答案,王万生《计算机组成原理实用教程》课后习题答案..doc...
- 利用Samba-Winbind组件进行Linux加windows域
- MySQL—常用指令总结
- Ext.Net 最新版(2011-06-24)License 问题
- SAP License:今天你‘牺牲’了吗?
- python大盘点:全局变量、局部变量、类变量、实例变量
- 【65】如何通过sys文件系统remove和probe一个PCI设备
- 广州智能服务机器人展览会 | 2016人工智能展
- python做个奶茶店程序
- 第三届蓝桥杯B组 C/C++取球游戏
- 9 种流行的文件、文件夹比较工具点评 (转贴)
- 萌萌哒身高差(找规律)
- 有N步台阶,每次可以走1步或者2步,计算有多少种走法
- 新版本idea shit+shit存在搜索历史记录
- MD5算法在PB中的实现(转载自 - 阿多米 - 博客园)
- 恢复格式化硬盘数据之前的QQ聊天记录