(一).面向对象的由来:
1.60年中期软件危机(software crisis)——落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现的一系列严重问题的现象。
软禁标准化与可重用性得到了工业界的高度认可,避免重复的劳动,缓解软件危机起到了重要作用。
2.万物皆对象
看待万物都可视为对象。
3.使用面向对象思想描述显示世界
基本步骤
(1)发现类
(2)找出属性(名词)
(3)找出行为(动词)
数据抽象的过程。
定义类

//演员类
public calss Actor{//共同特性
public String name;
public char sex;
public String job;
public int age;//共有属性public void eat(){........}
public void performs(){..........}}

4.用类图描述类——UML

+代表public
-代表private
参考工具:StarUML,Astah(可使用破解版)。


Astah tool导出将自动生成类
小结:
面向对象的优点:全新的组织代码的方式,为大型程序而生,小程序体会不带面向对象的好处。
面向对象抽象的原则
设计一个类时,不要让该类面向具体的类,而是面向抽象类或者是接口。
(二)示例演示
需求说明
1.定义类并创建对象
2.打印对象的信息

//第一个类
//创建劳拉和孙悟空的类
//创建游戏角色类Role
public calss Role{/*名称属性*/public String name;//等级public int level;//职业public String job;//释放技能public void  sendskill;
public void doSkill(){if(name.equals("劳拉")){System.out.println("劳拉释放了她的必杀技————隐身夺萃刃");}else if(name.euqals("孙悟空")){System.out.println("孙悟空释放了他的技能————吃俺老孙一棒")}}
}
//第二个类RoleTest
//实例化//声明一个Role类型的变量,Role role1相当于在栈空间中申请了一块空间role1,new Role();相当于在堆空间里分配了一块空间;Role role1=new Role();//把申请的地址赋给了role1;role1.name="劳拉";role1.level=25;role.job="考古学家";//调用方法释放劳拉的技能role.doSkll();//System.out.println(role1)可以打印出哈希码的值Role role2;role2=new Role();role2.name="孙悟空";role2.level=99;role2.job="齐天大圣";//调用方法释放孙悟空的技能role2.doSkill();

(三)构造器的使用
构造器的特点:
1.没有返回值
2.方法名和类名一致
示例一

public Role(String name1,int level1,String job1){name=name1;
level=level1;
job=job1;
}//调用
Role role1=new Role("孙悟空","99","齐天大圣"){role1.show();
}

示例二

public class Circle{//圆的半径public double radious;//圆的周长public double perimeter;//圆的面积 public double area;//默认构造public Circle(){inputRadious();}//带参构造public Circlev2(double radious){if(radious){radious=radious();}else{inputradious();}}public void inputradious(){Scanner input=new Scanner(System.in);System.out.println("请输入半径");radious=input.next.Double();input.close();}public void showPerimeter(){if(radious==0){inputRaius();//如果用户没输入半径,强制用户输入半径}perimeter=2*Math.PI*radious;System.out.println("周长为"+perimeter);}public void shouArea(){area=radious*radious*Math.PI;System.out.println("面积为"+area);}
}//测试类//(1)构造方法生成
Circlev2 circle=new Circlev2();
circle.showArea();//(2)重载
public class CircleTest{public static void main(String[] args){Circle circle=new Circle();circle.inputRadious();circle.shouPerimeter();circle.shouArea();}}

java面向对象小知识相关推荐

  1. Java 游戏开发:关于Java面向对象的知识(一)

    Java 游戏开发:关于Java面向对象的知识(一) 软件的生命周期(了解即可) 由于我们是大专生 这里的生命周期是之前软件工程的笔记,你们了解就可以了 什么是软件的生命周期 一个软件从被开发到被正式 ...

  2. Java 游戏开发:关于Java面向对象的知识( 四)

    这是上期教程:Go To It! 新年过去了,鸽了几天的教程,今天我们开始继续学习(新年快乐~) 游戏人物类的实现 对于一个游戏人物而言,我们可以想到以下的字段: 最大血量 当前血量 名称 装备数组( ...

  3. 访问修饰符作用范围由大到小是_9个java基础小知识

    一.面向对象和面向过程的区别 1. 面向过程 : 面向过程性能比面向对象高.因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考虑因素时(例如单片机.嵌入式开发.Linux/Uni ...

  4. 4.Java面向对象相关知识总结

    一.static关键字 1. static修饰的特点 1.1 被类的所有对象共享,是我们判断是否使用静态关键字的条件. 1.2 随着类的加载而加载,优先于对象存在(即使没有创建对象,也可以通过类名来使 ...

  5. Java面向对象的知识(一)

    这里通过一则历史小故事来解释什么是面向对象的思想. 帝置酒雒阳南宫.上曰:"列侯.诸将毋敢隐朕,皆言其情.我所以有天下者何?项氏之所以失天下者何?"高起.王陵对曰:"陛下 ...

  6. java学习小知识集锦1

    http://www.chinaitpower.com/2005September/2005-09-11/191812.html 1.awt中的MouseEvent类中的方法   isPopupTri ...

  7. JAVA面向对象初步知识总结:封装、继承、多态

    1.封装 把数据和方法包装进类中,以及具体实现的隐藏,常共同被称作是是封装.其结果是一个同时带有特征和行为的数据类型. 所谓具体实现的隐藏是通过访问权限控制实现的. JAVA 子类重写继承的方法时,不 ...

  8. Java EE小知识

    Tips:网络开发中有两种开发模式: C/S模式(Client/Server):如QQ.MSN: B/S模式(Brower/Server):如网上购物.论坛 静态请求:通常以.html或.htm为后缀 ...

  9. Java面向对象小项目 慕课网Java入门第二季答答租车系统

    一.项目背景 编写一个控制台程序,要求实现如下功能: 1.展示所有可租车辆 2.选择车型,租车量 3.显示租车清单,包括:总载货量,总载客量,总金额等: 二.车的类别 客车:只能载客 货车:只能载货 ...

最新文章

  1. 局域网与网络工程课堂笔记(1)(2)
  2. Django 学习(一)Django安装以及初步使用
  3. python中turtle画树_python中turtle可以画树吗?怎么画?
  4. 布隆过滤器(Bloom Filter)的原理和实现
  5. FreeRTOS系列第19篇---FreeRTOS信号量
  6. POJ 1054 The Troublesome Frog(枚举 + 剪枝)
  7. 计算机中文件访问时间是什么情况,【反计算机取证必看】Windows系统中文件时间属性的变化及影响因素.pdf...
  8. 金蝶K3老单新增自定义菜单按钮
  9. kubernetes(k8s):使用statefulset部署mysql主从集群
  10. 华为m6平板电脑Linux,华为平板M6 10.8英寸版使用体验及全面评测
  11. excel分段函数c语言,实战:Excel 逻辑分段函数应用
  12. 动态规划练习一之最低通行费
  13. 锁仓怎么解_期货锁仓后如何解锁?
  14. c#配合c++调节屏幕亮度,非伽马以及RGB方案
  15. Linux内核的配置和编译
  16. 多项选择题标准化考试系统设计
  17. 服务器虚拟化,主要有什么优势
  18. 什么是长尾关键词567
  19. 求解车流量之线性方程组
  20. 开源软件的licence

热门文章

  1. mmkv原理,Android多进程从头讲到尾,成功定级腾讯T3-2
  2. 如何用 Node.js 实现一个简单的 Websocket 服务?
  3. 服务器上pdf文档无法删除,怎么对PDF文件进行编辑,PDF怎么删除空白页
  4. Unity Shader PostProcessing - 8 - Bloom 泛光
  5. LFS(Linux From Scratch)构建过程全记录(一):准备工作
  6. 直观对比django与DRF
  7. Google Colab中把pyth3.7版本更换成python2.7
  8. 共轭转置matlab,何为共轭转置?
  9. .net mysql sqlhelper_「谢灿asp.net三层架构」5、DAL中公共类-SqlHelper类应该这样写
  10. 王达人漫展1,cosplay