面向对象:OO
面向对象的分析:OOA
面向对象的设计:OOD
面向对象分析与设计:OOAD——目标
面向对象的编程:OOP——起始点
高质量代码的要求(OO终极目标):复用性好、拓展性好、维护性好、可移植性好、健壮性好、效率高、可读性好…

一、对象和类

1.什么是对象和类?

现实中存在的很多很多的对象(东西),基于对象抽出类;
1.1 对象:软件中真实存在的单个东西
1.2 类:类型/类别,表示一类个体——自己所设计出的一种数据类型(引用类型)
1.3 类是对象的模板,对象是类的集体实例;
1.4 类中包含两种东西:
①对象所共有的属性/特征——变量;
②对象所共有的行为/动作——方法

1.5 一个类可以创建多个对象

如何创建类?

对于类而言,创建类:class Student{ }
基于对象抽出,不需要main

package oop_day01;
//学生类————自己制作的一个数据类型(引用类)
public class Student {//成员变量String name;int age ;String address;//方法void study(){System.out.println(name+"在学校");   }void sayhi(){System.out.println("大家好我叫"+name+"今年"+age+"岁了,家住"+address);  }
}

测试类必须有main,

package oop_day01;
//学生类的测数
public class Student_Test {public static void main(String[] args) {Student zs=new Student();//创建学生对象zs//使用类中的东西:zs.name="张三";zs.age=25;zs.address="shanghai";//调用方法:zs.study();zs.sayhi();Student ls=new Student();//创建学生对象lsls.name="李四";ls.age=44;ls.address="hubie";ls.study();ls.sayhi();}}

如何创建对象?

Student zs = new Student();

new Student()——真正的创建对象

     //         引用//  数据类型   引用类型变量   指向         对象Student     ls             =     new Student();//1.创建了一个学生对象//2.给所有成员变量赋默认值ls.name="李四";ls.age=44;ls.address="hubie";ls.study();ls.sayhi();}}

如何访问成员?

类似于方法的调用

补充:
创建对象之后不赋值,直接访问方法也不会报错,其中成员变量为初始默认值;
String也为引用类型,其默认值为null;

射击游戏的需求:
1.参与的角色:英雄机、子弹、小敌机、大敌机、小蜜蜂、天空
2.角色关系:
1) 英雄机发射子弹,子弹分单倍双倍火力
2)子弹射击敌人(小敌机、大敌机、小蜜蜂),若射击到了:
2.1)子弹直接消失、敌人先爆炸后消失
2.2)子弹消灭小敌机——得一分;
子弹消灭大敌机——锝三分;
子弹消灭小蜜蜂——得一条命、得二十次双倍火力(40火力值)
3) 敌人(小敌机、大敌机、小蜜蜂)和英雄机相撞,若撞上了:
3.1)敌人先爆炸后消失
3.2)英雄机减一条命,火力值清零
4) 英雄机、子弹、小敌机、大敌机、小蜜蜂都在天空上飞
对象:英雄机、子弹、小敌机、大敌机、小蜜蜂、天空
类:Hero、Airplane、bigAirplane、Bee、Bullet、class Sky

class Hero{
宽、高、x、y、命、火力值
void shoot(){ } //发射子弹
void moveTo(){ } //随鼠标移动,(x、y的变化)
void step(){ } //英雄机移动,尾炎图片变化
}

class Airplane{
宽、高、x、y、speed
void step(){ } //小敌机y移动
}
class bigAirplane{

}
class Bee{

}
class Bullet{

}
class class Sky{

}

练习
package oop_day01;
//学生类————自己制作的一个数据类型(引用类)
public class Student {//成员变量String name;int age ;String address;//方法void study(){System.out.println(name+"在学校");   }void sayhi(){System.out.println("大家好我叫"+name+"今年"+age+"岁了,家住"+address);  }
}
/*5 package oop_day01;public class Student {String name;String address;int age;void study(){System.out.println(name+"in school");}void sayhi(){System.out.println("hi name:"+name+";age:"+age+";address:"+address);}
}
/*4 package oop_day01;public class Student {String name;String address;int age;void study(){System.out.println(name+"in school");}void sayhi(){System.out.println("hi name:"+name+";age:"+age+";address:"+address);}
}
/*3 package oop_day01;public class Student {String name;String address;int age;void study(){System.out.println(name+"in school");}void sayhi(){System.out.println("hi name:"+name+";age:"+age+";address:"+address);}
}
/* 2package oop_day01;public class Student {String name;String address;int age;void study(){System.out.println(name+"in school");}void sayhi(){System.out.println("hi name:"+name+";age:"+age+";address:"+address);}
}
/*1 package oop_day01;public class Student {String name;String address;int age;void study(){System.out.println(name+"in school");}void sayhi(){System.out.println("hi name:"+name+";age:"+age+";address:"+address);}
}*/
package oop_day01;
//学生类的测数
public class Student_Test {public static void main(String[] args) {Student zs=new Student();//创建学生对象zs//使用类中的东西:zs.name="张三";zs.age=25;zs.address="shanghai";//调用方法:zs.study();zs.sayhi();//1.创建了一个学生对象//2.给所有成员变量赋默认值//         引用//  数据类型   引用类型变量   指向         对象Student   ls         =   new Student();//创建学生对象lsls.name="李四";ls.age=44;ls.address="hubie";ls.study();ls.sayhi();//5 Student ww=new Student();//4 Student ww=new Student();//3 Student ww=new Student();//2 Student ww=new Student();//1 Student ww=new Student();}}
/*5 package oop_day01;public class Student_Test {public static void main(String[] args) {Student zs=new Student();Student ls=new Student();zs.name="zhangsan";zs.age=546;zs.address="huanggang";ls.age=332;ls.name="lisi";ls.address="hy";zs.sayhi();zs.study();ls.sayhi();ls.study();}}
/* 4package oop_day01;public class Student_Test {public static void main(String[] args) {Student zs=new Student();Student ls=new Student();zs.name="zhangsan";zs.age=546;zs.address="huanggang";ls.age=332;ls.name="lisi";ls.address="hy";zs.sayhi();zs.study();ls.sayhi();ls.study();}}
/*3 package oop_day01;public class Student_Test {public static void main(String[] args) {Student zs=new Student();Student ls=new Student();zs.name="zhangsan";zs.age=546;zs.address="huanggang";ls.age=332;ls.name="lisi";ls.address="hy";zs.sayhi();zs.study();ls.sayhi();ls.study();}}
/*2 package oop_day01;public class Student_Test {public static void main(String[] args) {Student zs=new Student();Student ls=new Student();zs.name="zhangsan";zs.age=546;zs.address="huanggang";ls.age=332;ls.name="lisi";ls.address="hy";zs.sayhi();zs.study();ls.sayhi();ls.study();}}
/*1package oop_day01;public class Student_Test {public static void main(String[] args) {Student zs=new Student();Student ls=new Student();zs.name="zhangsan";zs.age=546;zs.address="huanggang";ls.age=332;ls.name="lisi";ls.address="hy";zs.sayhi();zs.study();ls.sayhi();ls.study();}}*/

Java学习_day008面向对象(OOP):对象和类相关推荐

  1. 【JAVA SE】第六章 面向对象、对象和类以及封装

    第六章 面向对象.对象和类以及封装 文章目录 第六章 面向对象.对象和类以及封装 一.面向对象 1.概念 2.面向对象的三大特征 二.对象和类 1.基本概念 2.Java中的对象 3.Java 中的类 ...

  2. 深圳Java学习:面向对象【重点知识】

    深圳Java学习:面向对象[重点知识] 在Java的学习中,面向对象应该是Java技术的重中之重,虽然在生活中没有对象可以面对,但在技术中还是要一直接触面对对象,而且不可避免.今天千锋小编对面向对象来 ...

  3. Java码农进阶之路~面向对象之对象和类

    一 类和对象的概念 1.对象 在Java中,对象具有属性和方法.属性为对象的一般特征(抽象描述),方法为对象的一些行为.(对象是由类创建出来的具体的事物) 例如用对象描述一个程序员 属性: 姓名 性别 ...

  4. JAVA基础-U7 面向对象编程(基础部分)-类与对象

    类与对象(OOP) 快速入门 类是抽象的,概念的,代表一类事物.即它是数据类型 对象是具体的,实际的,代表一个具体事物.即它是实例 类是对象的模版,对象是类的一个个体,对应一个实例 养猫问题: 张老太 ...

  5. Java学习笔记07-面向对象

    面向对象 面向对象&面向过程的区别 面向过程思想 步骤清晰简单,第一步做什么,第二步做什么以及后续每一步都清清楚楚 面向过程适用于处理一些较为简单的问题 面向对象思想 物以类聚,分类的思维模式 ...

  6. Java学习笔记——面向对象

    声明:文章首发于我的个人微信公众号Java编程社区,查看更多文章与学习资源请移步我的公众号Java编程社区 万物皆对象 学习Java,我们都听过这句话:万物皆对象.那么什么是对象? 我们先来看看人类是 ...

  7. Java学习笔记——面向对象 1

    声明:本文首发于我的个人微信公众号[Java编程社区],查看更多文章与学习资源请移步我的公众号Java编程社区 万物皆对象 学习Java,我们都听过这句话:万物皆对象.那么什么是对象? 我们先来看看人 ...

  8. java学习之面向对象和封装

    面向过程:当需要实现一个功能的时候,每一个具体的步骤都要亲力亲为,详细处理每一个细节. 面向对象:当需要实现一个功能的时候,不关系具体的步骤,而是找一个已经具有该功能的人帮忙做事情. 面向过程强调步骤 ...

  9. Java学习:面向对象编程

    探索面向对象编程 面向对象 任务1.采用面向对象方式求三角形面积 (一)编程实现 (二)讲解知识点 (三)拓展练习 任务1.创建学生类并测试 任务2.采用面向对象求解一元二次方程 面向对象 面向对象( ...

最新文章

  1. ubuntu下tesseract 4.0安装及参数使用
  2. 2014百度之星资格赛第二题
  3. YBTOJ洛谷P3195:玩具装箱(斜率优化dp)
  4. 浪潮云海OS再度登顶 SPEC Cloud性能得分「全球第一」
  5. Julia :HDF5数据文件读写与更新
  6. VS2013配置PDFLib 9.1.2的环境
  7. php评论表情包怎么引入,纯代码实现WordPress添加评论表情(心情)的教程
  8. pdf两页合并一页,身份证两页合并到一页
  9. 全国交通智慧升级,阿里云视频上云打造高速公路“视觉中枢”
  10. 【Linux 操作系统】vim编辑器配置及常用命令
  11. 硬件设计——PWM原理与设计
  12. HTML排版一首古诗,古诗句排版正确方式
  13. DHT11温湿度传感器
  14. Ubuntu实用安装
  15. 2、SpringBoot接口Http协议开发实战8节课(7-8)
  16. iQOONeo6SE和红米k40区别 哪个好 iQOONeo6SE和红米k40哪个值得买 两者配置对比
  17. Linux Shred命令
  18. 初面蚂蚁金服,三面腾讯,已拿offer!绝对干货分享
  19. rdlc报表An error occurred during local report processing错误
  20. 你想不到,韩国女团最喜欢的英文单词是这些

热门文章

  1. C#验证子网掩码的正确性
  2. python 解析xml
  3. php5.3+ 安装(mysqlnd )
  4. 使用MySQL自带工具mysqlhotcopy快速备份mysql数据库
  5. 基于GeoMipmap的地形系统。
  6. 分布式实时日志分析解决方案ELK部署架构
  7. 解决Windows10下无法对docker容器进行端口访问(端口映射的问题)
  8. MSSQL编程笔记四 解决count distinct多个字段的方法
  9. 国内github访问慢的解决方法
  10. React中跨域问题的完美解决方案