Java入门 面向对象第一天
2019-08-16 11:26:50来源:博客园 阅读 ()
Java入门 面向对象第一天
面向对象
人为抽象的一种编程模型,在理解面向对象的代码时要按照抽象的模型来理解,不能只从代码字面来理解复杂的问题,学会拆分成一个一个独立的小问题,通过解决每一个小问题,最后解决一个大问题
类
类是事物,算法,逻辑,概念等的抽象,用来封装这类型相关的数据和方法代码,封装成独立组件,可以把类理解成模板,或者图纸.在创建类对象时就相当于按着这个模板来创建
对象
从类创建来的具体实例,每个实例占用独立的内存空间,保存各自的属性数据,实例可以单独控制,让实例去执行指定方法中的代码.
引用
保存一个实例对象的内存地址用引用变量,将地址值赋值给变量,用变量去调用一个实例,可以理解成遥控,只需要用引用去操作就行了.
这里以一个例子来了解:
项目:day0101_士兵
类:day0101.Test1类和Solder类
Solder类代码:
1 package day0101; 2 3 4 5 import java.util.Random; 6 7 8 9 /* 10 11 * 封装 12 13 * 相关数据,逻辑运算方法, 14 15 * 封装成一个"类"组件 16 17 */ 18 19 public class Solder { 20 21 //成员变量 22 23 int id; //默认值0 24 25 int blood = 100; 26 27 28 //成员方法 29 30 public void go() { 31 32 System.out.println(this.id+"号士兵前进"); 33 34 } 35 36 public void attack() { 37 38 if (blood == 0) { 39 40 System.out.println( 41 42 "这是"+id+"号士兵的尸体"); 43 44 return;//方法到此结束 45 46 } 47 48 System.out.println(id+"号士兵进攻"); 49 50 //模拟受到伤害,血量减少 51 52 //产生一个随机减血量 53 54 int d = new Random().nextInt(10); 55 56 blood -= d;//血量减少 57 58 if (blood < 0) {//如果血量变成负数,重置成0 59 60 blood = 0; 61 62 } 63 64 System.out.println("血量: "+blood); 65 66 if (blood == 0) { 67 68 System.out.println(id+"号士兵阵亡"); 69 70 } 71 72 } 73 74 }
Test1类代码:
package day0101; public class Test1 { public static void main(String[] args) { //新建 Soldier 实例 //再把它的内存地址值,保存到 s1 变量 /* s1 = { * id: 0, * blood: 100 * } */ Solder s1 = new Solder(); /* s2 = { * id: 0, * blood: 100 * } */ Solder s2 = new Solder(); //用s1变量找到士兵的内存空间,访问它的id变量 s1.id = 9527; s2.id = 9528; //用s1变量找到士兵的内存空间,让它去执行go()方法代码 s1.go(); s2.go(); s2.attack(); s1.attack(); } }
构造方法
新建实例时,执行的一种特殊方法 new Solder()
Java的类中必须有构造方法,如果自己不定义构造方法,编译器会添加默认的空构造方法
class Solder{ public Solder(){ } }
上面的代码是自己添加的一个空构造方法,当你不添加是,编译器也是自动生成空构造方法,什么也不做
构造方法的作用
创建一个实例之后,立即执行的一个特殊方法,构造方法中的代码可以任意编写,完成任意功能或执行任意运算,构造方法一般的作用是给成员变量赋值.成员变量是定义在类中的变量.
this用法
this.id
id是成员变量,当用构造函数给成员变量赋值时:
public class A{ int id; public A(int id){ this.id=id; } }
this.id表示的是成员变量id.
this(a,b)
a,b是括号中的参数,this(a,b)表示调用参数为两个构造方法
public class A{ int id; int a; public A(int id){ this(id,5) } public A(int id,int a){ this.id=id; this.a=a ; } }
this()要在代码的首行.
原文链接:https://www.cnblogs.com/kjs-1998/p/11266318.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash