面向对象

java语言是一种以面向对象的思想来设计的编程语言。想要了解面向对象的思想,我们需要了解类和对象的概念,以及类的属性和方法。

1、JAVA中的类和对象

类,简单的说就是某一类事物的总称。举个例子:
LOL有很多英雄,比如盲僧,团战可以输,提莫必须死,盖伦,琴女。其中盲僧、提莫、盖伦、琴女等都是英雄,属于英雄这个类。注意,英雄是这个类的名称,是我们命名的。同时所有这些英雄,都有一些共同的状态。比如,他们都有名字,hp,护甲,移动速度等等
这样我们就可以设计一种东西,叫做类,代表英雄这样一种事物.

英雄(Hero)
状态 名字, 血量,护甲,移动速度

public class Hero {String name; //姓名float hp; //血量float armor; //护甲int moveSpeed; //移动速度
}

类就像一个模板,根据这样一个模板,可以创建一个个的具体的英雄,如我们可以创建盲僧、提莫、盖伦、琴女等英雄。一个个具体的英雄,就叫一个个的对象。
java中如何创建对象呢?

new Hero() #就是java中创建一个英雄对象的意思

public class Hero {String name; //姓名float hp; //血量float armor; //护甲int moveSpeed; //移动速度public static void main(String[] args) {Hero garen =  new Hero();garen.name = "盖伦";garen.hp = 616.28f;garen.armor = 27.536f;garen.moveSpeed = 350;Hero teemo =  new Hero();teemo.name = "提莫";teemo.hp = 383f;teemo.armor = 14f;teemo.moveSpeed = 330;} }

好的编程习惯会让代码看上去更清爽,易读,容易维护
比如类的第一个字母大写
Hero

public class Hero {}

2、JAVA类的属性

我们已经创建了英雄这个类,一个英雄有姓名,血量,护甲等等状态,这些状态就叫做一个类的属性。
属性的类型可以是基本类型,比如int整数,float 浮点数,也可以是类类型,比如String 字符串。
属性名称一般来说,都是小写,比如name。如果有多个单词组成,后面的单词的第一个字母大写
比如 moveSpeed,属性也是变量,所以需要满足 变量的命名规则。

ublic class Hero {String name; //姓名float hp; //血量float armor; //护甲int moveSpeed; //移动速度}

3、JAVA类的方法

在LOL中,一个英雄可以做很多事情,比如超神,超鬼,坑队友,能做什么在类里面就叫做方法。
类中的方法就是类需要执行的动作
比如队友残血正在逃跑,你过去把路给别人挡住了,导致他被杀掉。 这就是坑队友。每个英雄…都可以坑。所以为Hero这个类,设计一个方法: keng。

public class Hero {String name; //姓名float hp; //血量float armor; //护甲int moveSpeed; //移动速度//坑队友void keng(){System.out.println("坑队友!");}
}

类中的方法,有的方法是有返回类型的。比如方法:

float getArmor(){return armor;
}

这个方法是用来获取一个英雄有多少护甲的,返回类型是float。有的方法不需要返回值,这个时候就把返回类型设置为void,表示该方法不返回任何值。比如方法 “坑队友”。

void keng(){System.out.println("坑队友!");
}

英雄在一些特定情况下,可以增加移动速度。这样我们就通过addSpeed这个方法增加移动速度。

void addSpeed(int speed){//在原来的基础上增加移动速度moveSpeed = moveSpeed + speed;
}

int speed 叫做方法的参数,给盖伦增加100的移动速度:

Hero garen =  new Hero();
garen.name = "盖伦";
garen.moveSpeed = 350;
garen.addSpeed(100);
public class Hero {String name; //姓名float hp; //血量float armor; //护甲int moveSpeed; //移动速度//坑队友void keng(){System.out.println("坑队友!");}//获取护甲值float getArmor(){return armor;}//增加移动速度void addSpeed(int speed){//在原来的基础上增加移动速度moveSpeed = moveSpeed + speed;}public static void main(String[] args) {Hero garen =  new Hero();garen.name = "盖伦";garen.moveSpeed = 350;garen.addSpeed(100);}}

方法是一个类的动作行为,所以一般都是以动词开头的,比如 keng …。如果有多个单词,后面的每个单词的第一个字母使用大写,比如 addSpeed。

public class Hero {String name; //姓名float hp; //血量float armor; //护甲int moveSpeed; //移动速度//坑队友void keng(){System.out.println("坑队友!");}//获取护甲值float getArmor(){return armor;}//增加移动速度void addSpeed(int speed){//在原来的基础上增加移动速度moveSpeed = moveSpeed + speed;}public static void main(String[] args) {Hero garen =  new Hero();garen.name = "盖伦";garen.moveSpeed = 350;garen.addSpeed(100);}}

java学习——面向对象相关推荐

  1. Java学习-面向对象基础

    目录 1.设计对象 2.内存机制 3.面向对象实战:购物车案例 4.构造器.this 4.1构造器 4.2 this 5.封装 6.JavaBean 7.成员变量和局部变量 8.案例 1.设计对象 什 ...

  2. Java学习——面向对象编程思想

    目录 一. 基本概念 二. 面向对象与面向过程的区别 三. 面向对象程序设计的类与对象 3.1 对象 3.2 类 四. 面向对象的四大特征 4.1 抽象 4.2 继承 4.3 封装 4.4 多态 1) ...

  3. java学习面向对象之内部类

    什么是面向对象内部类呢?所谓的内部类,即从字面意义上来理解的话,就是把类放到类当中. 那么内部类都有什么特点呢? 1.内部类可以访问包裹他的类的成员. 2.如果包裹他的类想访问被其包裹的类的话就得实例 ...

  4. JAVA学习--面向对象的特征二:继承性

    * 一.面向对象的特征二:继承性 * 1.为什么要设计继承性?  *  * 2.通过"class A extends B"类实现类的继承.  *   子类:A  父类(或基类 Su ...

  5. Java学习-面向对象进阶

    目录 1 static 1.1 static修饰成员变量 1.2 static修饰成员方法 1.3 static注意事项 1.4 工具类 1.5 工具类的应用练习 1.6 代码块 1.6.1 代码块概 ...

  6. Java学习-面向对象进阶二

    目录 1 日期与时间 1.1 Date类 1.2 Date类 1.3 练习--秒杀活动 1.4 Calender 1.5 JDK8新增API 1.5.1 概述 1.5.2 LocalDate.Loca ...

  7. Java学习---面向对象与多维数组

    多维数组 定义: n维数组就是元素为n-1维数组的数组 int[] 数组名 int[][] 数组名 int 数组名 [] int[] 数组名[] 初始化: 1 . 数据类型[][] 数组名 = new ...

  8. Java学习-面向对象实现点和圆的关系判断

    前言   面向对象是Java中的基本,根源,本篇博客,小编将结合一个点和圆两个类的关系,来好好地整理一下面向对象中的那些事. 点和圆两个类  一.创建点类Point 1.成员变量:x,y 2.构造方法 ...

  9. java学习面向对象之抽象类

    什么是抽象类,之所以说抽象就是具体的反义词喽~抽象离我们最近的距离也就是初中的时候学过的美术课,抽象画派.拿一桶画彩就这么往画布上一泼,那就是抽象.那么java世界当中什么是抽象呢?我们再拿动物还有狗 ...

最新文章

  1. mysql宠物种类表,mysql中的表操作
  2. SVN 使用方法(228)
  3. 从Delphi 7升级到Delphi XE
  4. 迭代器模式(Iterator)
  5. 边缘设备上的实时AI虫害消除:入门
  6. 黑客如何让脚本定时执行
  7. 《网页设计心理学》一1.6 你最近是否有过灵光一现?
  8. web安全day5:DNS部署与安全
  9. mysql中自增的关键字_MySQL自增型字段的关键字是auto_increment。
  10. idea 一直在updating index的问题
  11. iOS-ERROR ITMS-90096
  12. Olly Script Editor V2.0
  13. Windows 中如何远程访问内网计算机
  14. LeetCode 43. 字符串相乘【c++/java详细题解】
  15. html设置点击变换图标,【css】css实现点击Toggle功能/icon切换
  16. lda主题模型python实现篇_主题模型TopicModel:通过gensim实现LDA
  17. 7-28 天梯赛的善良 (PTA C语言)最简
  18. 网易2018校园招聘:魔法币 [python]
  19. SPSS数据分析之连续变量频率分析
  20. WIFi天线和天线测试

热门文章

  1. Simple-Format: BMP文件格式简记
  2. Python 二维列表操作
  3. mysql用month()函数取月份时,不足10的前面补0
  4. java支付宝支付遇到{“errMsg“:“requestPayment:fail [payment支付宝:62009]未知错误“,“errCode“:-100,“code“:-100}
  5. 巨头纷纷加入社区团购,这背后的打法你知道吗?
  6. 【填坑指南】[Nordic] SWI2_EGU2_IRQHandler multiply defined
  7. 案例呈献 | 中国邮政储蓄银行股份有限公司山东省分行新大楼会议系统建设项目
  8. fastadmin详情页展示图片
  9. 2.4 Matplotlib 转为十字坐标轴
  10. Word文档文档底色如何取消?