Java面对对象程序设计——面对对象
重点掌握
1.类是对一类事物描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称为实例
2.创建对象的格式是:类名 对象名称 = new 类名 ();
3.方法的声明格式是:[<修饰符>] <返回类型> <方法名>({参数列表}){ 方法体 }
4.如果在定义方法时在最后一个形参的类型后增加“...”,则表明该形参可以接受多个参数值,多个参数值被当成数组传入
5.类方法的名称与类名完全一致,它用于在创建对象时对成员变量进行初始化。
类和对象的概念
类(class)和对象 (object)是两种以计算机为载体的计算机语言的合称。. 对象是对客观事物的抽象,类是对对象的抽象。. 类是一种抽象的数据类型。. 它们的关系是,对象是类的实例,类是对象的模板。
一、类与对象
类的语法构造
Java语言中定义类的语法如下:
[修饰符] class 类名
{定义构造方法;定义属性;定义方法;
}
修饰符可以是public、final、abstract或完全省略这三个修饰符,而类名只要是一个合法的标识符即可
注意:类中各成员之间的定义顺序对程序没有任何影响
对象的创建和使用
在Java语言中创建对象的根本途径是,通过new关键字调用某个类的构造方法
( 1 )声明对象
类名 对象名
( 2 )实例化对象
对象名 = new 构造方法()
( 3 )属性的调用
对象名.属性
( 4 )方法的调用
对象名.方法名( [ 参数 ] )
示例
创建Dota游戏中的英雄类,在该类中定义三个属性,分别是姓名、年龄和性别,然后再定义一个奔跑的方法
public class Hero {String name; //名字int age; //年龄String sex; //性别//奔跑方法public void run(int a){System.out.println(a+"m/s的速度飞速狂奔");}public static void main(String[] args){//创建英雄对象Hero hero = new Hero();//通过对象实例调用name属性并为该属性赋值hero.name = "暗黑游侠";hero.age = 20;hero.sex = "女";System.out.println("英雄的名字:"+hero.name);System.out.println("英雄的年龄:"+hero.age);System.out.println("英雄的性别:"+hero.sex);hero.run(30);//使用该对象调用run()方法}}
程序运行结果如图
二、方法详解
方法是类或对象的行为特征的抽象,是类或对象最重要的组成部分,通过方法可以实现对类的属性的操作
方法声明
方法(method)的声明包含方法头和方法体两部分,方法的声明格式如下:
[<修饰符>] <返回类型> <方法名>([ 参数列表 ]){ 方法体 }
1.方法头包括修饰符、返回类型、方法名和参数列表;方法体包括在括号内的声明部分和语句部分,用于描述方法的功能
2.修饰符,表示方法的访问权限。修饰符有private、缺省访问修饰符、protected和public
3.返回类型,为该方法返回值的类型,如该方法没有返回值,则方法的返回类型为void
4.参数列表,指定在调用时应该传递的参数的个数和类型。参数列表如果包含多个参数,相邻的参数之间用逗号隔开,此处的参数在定义时并没有分配存储单元,只有在运行时间才分配,所以称为形式参数。方法也可以没有参数,称为无参方法
5.对于有返回值的方法,方法体中至少有一条return语句,形式为return(表达式)。当调用该方法时,表达式的值就是方法的返回值,方法返回值的类型应和表达式的类型一致
6.方法不能嵌套定义,即不能在方法中再声明其他的方法
方法参数的传递
public class Parameter {//该方法用于在方法中互换形参值public void change(String x,String y){String temp; //定义一个临时变量System.out.println("***形参改变之前***");System.out.println("x="+x+"\t"+"y="+y);//形参值的互换temp=x; //将x值赋值给变量tempx=y; //将变量y值赋值给变量yy=temp; //将temp值赋值给变量ySystem.out.println("***形参值互换后***");System.out.println("x="+x+"\t"+"y="+y);}public static void main(String[] args) {Parameter param = new Parameter(); //创建Parameter实例String a = "10",b = "20";System.out.println("---调用change()方法前---");System.out.println("a="+a+"\t"+"b="+b);param.change(a,b); //调用方法System.out.println("---调用change()方法后---");System.out.println("a="+a+"\t"+"b="+b);}}
程序运行结果如图
三、可变形参方法
可变方发声明
[ < 修饰符 > ] < 返回类型 > < 方法名 >( 变量类型...变量名 ){ 方法体 }
1.方法头包括修饰符、返回类型、方法名和参数列表;方法体包括在括号内的声明部分和语句部分,用于描述方法的功能
2.修饰符,表示方法的访问权限。修饰符有private、缺省访问修饰符、protected和public
3.返回类型,为该方法返回值的类型,如该方法没有返回值,则方法的返回类型为void
4.变量类型为任意数据类型,在变量类型和变量名之间用"..."表示。其中"..."不是省略号,而是定义参数类型的方式
可变参数的特点如下:
( 1 )只能出现在参数列表的最后面
( 2 )”...“位于变量类型和变量名之间,前后有无空格都可以
( 3 )调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数
示例
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,"小兴","阿彪","阿伟");}}
程序运行结果如图
四、构造方法
构造方法是一种特殊的方法,它是一个与类同名的方法。 对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。 当类实例化一个对象时会自动调用构造方法。 构造方法和其他方法一样也可以重载
特点:当一个类中没有定义构造函数时,系统会给该类中加一个默认的空参数的构造函数,方便该类初始化。只是该空构造函数是隐藏不见的
示例
public class Hero {String name;int age;//用户自定义的构造方法public Hero(String xm,int nl){System.out.println("---用户自定义构造方法执行了---");name = xm;age = nl;}public Hero(){System.out.println("---缺省构造方法被执行了---");}public void showMessage(){System.out.println("英雄名:"+name+"\t"+"英雄年龄:"+age);}public static void main(String[] args) {//用缺省构的构造方法创建对象Hero hero = new Hero();Hero hero2 = new Hero("吕德华",66);hero.showMessage();hero2.showMessage();}}
程序运行结果如图
如有错误和不足请大佬指出
Java面对对象程序设计——面对对象相关推荐
- 张云飞 201771010143 《面对对象程序设计(java)》第十七周学习总结
张云飞 201771010143 <面对对象程序设计(java)>第十七周学习总结 1.实验目的与要求 (1) 掌握线程同步的概念及实现技术: (2) 线程综合编程练习 2.实验内容和步骤 ...
- 面对对象程序设计---第一次blog
这里写自定义目录标题 引言: 第一次与第二次大作业 题目集2:7-2 串口字符解析 点线形系列1-计算两点之间的距离 点线形系列2-线的计算 点线形系列3-三角形的计算 总结 引言: 这次的作业是基础 ...
- 自动化测试之python基础什么是面对对象之类和对象
前言 学习自动化测试需要掌握一门开发语言,Java.python这两个可以选一个,这里呢笔者推荐的是python语言,因为它比较好学,那么今天呢,笔者就来给大家介绍一下python基础中的面对对象之类 ...
- python中对象的特性_python中类与对象之继承,python类和对象理解,面对对象的三大特性之...
python中类与对象之继承,python类和对象理解,面对对象的三大特性之 面对对象的三大特性之继承 1.什么是继承? 在程序中,继承指的是class与class之间的关系 继承是一种关系,必须存在 ...
- Java基础学习总结(127)——Java方法应该返回空对象还是null
Java方法应该返回空对象还是null? 大多数情况下就是在需要返回值的方法中,使用空对象(empty object)来代替返回null.理由很简单,空对象与其他有意义的对象一样,使得调用方法的用户不 ...
- Java笔记07——类和对象
目录 1. 面向对象---概述 1.1 啥是面向对象编程? 1.2 为什么要面向对象编程 1.3 面向对象学什么? 总结一 2 创建和设计 类 2.1 什么是 类? 2.2 什么是对象? 2.3 如何 ...
- 狼人杀与血染钟楼的【JAVA面向对象】————类和对象
目录 一.类 1.什么是类 2.类的定义 3.类的构成 二.对象 1.什么是对象 2.对象的实现 三.static 一.类 1.什么是类 天黑请闭眼! 现在是狼人杀的时间,好了,现在你拿的身份是狼人. ...
- Java基础教程-05-面向对象
Java基础教程-05-面向对象 1. 面向过程和面向对象解释 1.1 面向过程 1.1.1 简述 我们回想一下, 前面我们完成一个需求的步骤是怎样的? 首先是搞清楚我们要做什么. 然后在分析怎么做. ...
- java中的类和对象(重点)超详细
java中的类和对象 1.类与对象的初步认知 2.类和对象的实例化 3.类的成员 3.1.字段,属性,成员变量 3.2.方法 3.3.static 关键字 3.4.小结 4.封装 4.1.privat ...
最新文章
- 《创业维艰分享之五》所有得,有所乐,日事日清,循序渐进。
- Struts2的2.5.10版本找不到StrutsPrepareAndExecuteFilter过滤器 与 struts.xml文件通配符异常问题
- ICCV NAS Workshop 最佳论文提名:通过层级掩码实现高效神经网络架构搜索
- Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.
- 正则表达式 转义字符
- 简单的sql循环操作
- 将shp数据导入SQL Server
- linux文件的上传和下载(终端工具SCRT和XShell)
- 回眸 2020,展望 2021
- Windows Server执行定时任务
- 图灵、冯诺依曼谁更牛?
- 小程序页面onload(),onready()加载顺序
- python微信小程序 java电子书阅读器系统uniapp
- 2020-11-10
- Python---复制文件夹
- oracle INSTR函数的介绍
- Win10左下角搜索栏以及资源管理器搜索栏无法使用(点击没有反应)
- PULUODY LIMS系统实操
- 升级sp3后出现:一个问题阻止windows正确检测此机器许可证--解决方案
- 《仓鼠球online》80%策划案
热门文章
- ffmpeg安装及在java中的使用案例
- python全局变量(模块法和global)
- rook 排错记录 + Orphaned pod found kube-controller-manager的日志输出
- href传中文参数乱码问题
- 武汉大学计算机转专业2021,通知|关于做好2021年普通本科生转专业工作的通知...
- github首次使用提交项目
- java 域账户登录失败_域用户登陆,错误:无法登录到你的账户,通常可以通过从你的账户注销,然后重新登录来解决此问题...
- 7个实用的Python自动化代码,技术改变生活,不再重复
- 科技的成就(二十七)
- 数字时代,商业智能BI的落地意味着什么