Java 类与对象详细
前言:
早期的Java
语言,是面对过程的语言(面向过程指把一个场景分割成一个个的步骤研究),如今的Java
已经是面对对象的语言(面向对象指把一个场景分割成一个个的对象研究)。面向对象是相比面向过程有很多便利的地方,以后读者会慢慢感受到~
那么,何谓对象呢?小编正在使用的电脑是一个对象,读者手中的手机是一个对象……对象,指【一个】【具体的】物品或者事物(注意对象可以是抽象的东西)。
每个对象都有其特征和用途,不同类型的对象特征和用途有所不同。我们把具有相同特征和用途的对象归为一类,这就是类。
比如读者的手机,其特征有颜色 重量 价格 内存大小等,用途有上网 打电话 发短信等;小编的电脑,其特征有颜色 重量 内存大小 CPU
型号等,用途有上网 打游戏 办公等。之所以说手机和电脑不是同一类产品是因为手机和电脑的特征和用途有所不同。
1.类
Java
中,类定义的一般格式为:
public class 类名{ 访问权限修饰符 数据类型 属性名; 访问权限修饰符 返回值类型 方法名(参数类型 参数名,参数类型 参数名……){方法体} …… }
类中属性的定义格式为:
访问权限修饰符 数据类型 属性名;
类中方法的定义格式为:
访问权限修饰符 返回值类型 方法名(参数类型 参数名,参数类型 参数名……){方法体}
类的定义中有以下补充:
- 1.类名第一个的字母必须大写;
- 2.访问权限修饰符有四种:
public
、默认的、protected
、private
;一般用public
较多; - 3.返回值的类型有很多种,比如
int
型,double
型,String
型,返回值分别为整数、小数、字符串
实例:定义一个学生(Student
)类
public class Student { //姓名属性 public String name; //学分属性 public int score; //学习方法 方法没有返回值 没有参数 public void study(){ //输出一句话:谁正在学习Java! system.out.println("name + "正在学习Java!"") } }
在一个程序中,可以用//后面加文字的方式来对代码进行注释。
2.对象
定义完类后,我们可以来创建该类的对象。创建对象(也称实例化对象)的一般格式为:
类名 对象名 = new 类名();
在实例化对象后,就可以对对象的属性进行赋值,在后面的实例中可以看到。
对象的属性和方法已经在对象所在的类中定义好了,那么对象如何调用(使用)这些属性和方法呢?调用对象的属性和方法时,用的是英文输入法中的 "."
调用对象的格式为:
对象名.属性名;
调用方法的格式为:
对象名.方法名(参数值,参数值…………);
实例:实例化对象并给对象赋值,调用对象的属性和方法。
public class Manager { public static void main(String[] args){ //创建一个学生对象 Student stu = new Student(); //初始化学生对象的属性 stu.name = "欧栋"; stu.score = 58; //调用对象的方法 stu.study(); }
程序最后输出:
欧栋正在学习Java!
3.练习
了解了类与对象后,让我们来做一些简单的练习!
- 练习1:学生欧栋在学习java课程,每一次学习让课程的课时减少1,课时减少为0,学习完成,欧栋获得
java
课程的学分。 - 练习2:劫 英雄在攻击 菊花怪,每次攻击让菊花怪的血量减少劫的攻击力的值,直到菊花怪的血量为0结束。(指定劫的和菊花怪的血量都为
100
,劫的攻击力为9) - 练习3:劫英雄与敌人菊花怪PK,劫攻击菊花怪一次使菊花怪血量减少劫的攻击力的值,菊花怪攻击劫一次使劫的血量减少菊花怪的攻击力的值,直到一方的血量<=0,PK结束。(指定劫的和菊花怪的血量都为100,劫的攻击力为9,菊花怪的攻击力为8)
练习3思路分析:
对象:劫 菊花怪
对象属性和方法
劫:属性:名字 攻击力 血量
方法:攻击菊花怪
菊花怪:属性:名字 攻击力 血量
方法:攻击劫
练习2思路分析:
对象:劫,菊花怪
劫:属性:名字,攻击力
方法:攻击菊花怪
菊花怪:属性:名字,血量
方法:\
练习1思路分析:
对象:学生 课程
学生属性:姓名,学分
学生方法:学习
课程属性:名称,学分,课时
方法:无
4.练习答案
练习1答案:
//定义学生类 public class Student{ //姓名属性 public String name; //学分属性 public int score; //学习的方法 public void study( Course c ){ //让课程的课时减少1 c.hours = c.hours -1; //输出 谁在学习什么课程,还剩多少个课时 System.out.println(name + "在学习"+ c.name +"课程,还剩" + c.hours + "个课时"); //判断课程的课时是否为0 if( c.hours == 0){ //学习完成,自己的学分增加课程的学分 score = score + c.score; //输出 谁完成了什么课程的学习,获得多少个学分,现在的学分是多少 System.out.println(name + "完成了"+ c.name + "课程的学习,获得"+ c.score +"个学分,现在的学分是"+score ); } } }
//定义课程类 public class Course{ //课程名属性 public String name; //学分属性 public int score; //学时属性 public int hours; }
//定义一个只有主方法的类 public class Manager{ //主方法 public static void main(String[] args){ //创建课程对象 Course java = new Course(); //给课程对象的属性赋值 java.name = "Java"; java.hours = 20; java.score = 3; //创建学生对象 Student oudong = new Student(); //给学生对象的属性赋值 oudong.name="欧栋"; oudong.score = 27; //学习java课程 while(java.hours > 0 ){ oudong.study(java); } } }
到此这篇关于Java 类与对象详细的文章就介绍到这了,更多相关Java 类与对象内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
struts2与cookie 实现自动登录和验证码验证实现代码
这篇文章主要介绍了struts2与cookie 实现自动登录和验证码验证实现代码的相关资料,需要的朋友可以参考下2016-10-10Spring Boot使用AOP实现REST接口简易灵活的安全认证的方法
这篇文章主要介绍了Spring Boot使用AOP实现REST接口简易灵活的安全认证的方法,非常具有实用价值,需要的朋友可以参考下2018-11-11mybatis参数类型不匹配错误argument type mismatch的处理方案
这篇文章主要介绍了mybatis参数类型不匹配错误argument type mismatch的处理方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-01-01Caused by: java.lang.NumberFormatException: For input s
这篇文章主要介绍了Caused by: java.lang.NumberFormatException: For input string: “port“,本文给大家分享完美解决方法,需要的朋友可以参考下2023-01-01SpringBoot配置GlobalExceptionHandler全局异常处理器案例
这篇文章主要介绍了SpringBoot配置GlobalExceptionHandler全局异常处理器案例,通过简要的文章说明如何去进行配置以及使用,需要的朋友可以参考下2021-06-06
最新评论