昨晚我写了篇面向对象的内存分析,今天我们来做个小练习。。

需求:

使用java描述一个车与修车厂两个事物, 车具备的公共属性:轮子数、 名字、 颜色 ,还
具备跑的功能行为。跑之前要检测轮子是否少于了4个,如果少于了4个,那么要送到修车厂修理,
修车厂修理之后,车的轮子数要补回来4个。 然后车就继续的跑起来。

修车厂: 具备公共属性: 名字、 地址、 电话。
公共的行为: 修车。

--------------------------------------------------------------------------------------------------------------

初学者的经典错误:
1. 变量在同一个作用域(大括号)上是可以直接访问的。
2. 如果一个类要访问另外一个类变量时,那么这时候就只能通过创建对象进行访问。(仅对于目前正确)

//车类
class Car{ //事物的公共属性使用成员变量描述
String name ; // 名字 String color; //名字 int wheel; //轮子数 //事物的公共行为使用函数描述
public void run(){
if(wheel>=4){
System.out.println(name+wheel+"个轮子飞快跑起来..");
}else{
System.out.println(name+"不够4个轮子了,赶快去修理");
}
}
} //修车厂
class CarFactory{ String name;//名字 String address ;//地址 String tel; //电话 //修车公共行为 ------ 返回值类型、 未知的参数
public void repair(Car c){
if(c.wheel>=4){
System.out.println("告诉你,费了很大力气修好了,给钱");
}else{
c.wheel = 4;
System.out.println("修好了,给钱!!");
}
}
} class Demo2
{
public static void main(String[] args) {
//0x98
Car c = new Car();
//给车对象赋予属性值
c.name = "比亚迪";
c.color = "黑色";
c.wheel = 4; for(int i = 0 ; i<100 ; i++){
c.run();
}
c.wheel = 3;
c.run(); //创建修车厂对象
CarFactory f = new CarFactory();
//给修车厂赋予属性值
f.name = "集群宝修车厂";
f.address = "韵泰商业广场一楼";
f.tel = "020-1234567";
//调用修车的修车
f.repair(c);
c.run();
}
}

通过代码的注释 有些基础的同学 应该都能看的懂,如果还不懂请看我的上一章 24.面向对象的内存分析

JAVA_SE基础——25.面向对象练习的更多相关文章

  1. JAVA_SE基础——22.面向对象的概念

    我写博客是为了提升自己和为了进入黑马程序员学习,还有分享些自己的心得给大家,希望能帮助大家学习JAVA. 我是自学的,如果写的有错误或者能更好的修改的请提出. 在这里我先引用下<think in ...

  2. python基础(25):面向对象三大特性二(多态、封装)

    1. 多态 1.1 什么是多态 多态指的是一类事物有多种形态. 动物有多种形态:人,狗,猪. import abc class Animal(metaclass=abc.ABCMeta): #同一类事 ...

  3. JAVA_SE基础——24.面向对象的内存分析

    黑马程序员入学blog ... 接着上一章的代码: //车类 class Car{ //事物的公共属性使用成员变量描述. String name; //名字的属性 String color; //颜色 ...

  4. JAVA_SE基础——8.基本数据类型

    基本数据类型有:整数类型.浮点类型.字符类型.布尔类型 整数类型 整数类型用来存储整数数值,即没有小数部分的数值.与C.C++语言相同,整数在Java语言中有3种表示形式:十进制.八进制和十六进制. ...

  5. JAVA_SE基础——6.标识符&关键字

    学会写helloworld之后,  我们就开始来认识标识符&关键字 一.标识符 标识符是指可被用来为类.变量或方法等命名的字符序列,换言之,标识符就是用户自定义的名称来标识类.变量或方法等.更 ...

  6. python基础,函数,面向对象,模块练习

    ---恢复内容开始--- python基础,函数,面向对象,模块练习 1,简述python中基本数据类型中表示False的数据有哪些? #  [] {} () None 0 2,位和字节的关系? # ...

  7. (转)Python成长之路【第九篇】:Python基础之面向对象

    一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程-->错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个 ...

  8. [.net 面向对象编程基础] (11) 面向对象三大特性——封装

    [.net 面向对象编程基础] (11) 面向对象三大特性——封装 我们的课题是面向对象编程,前面主要介绍了面向对象的基础知识,而从这里开始才是面向对象的核心部分,即 面向对象的三大特性:封装.继承. ...

  9. [.net 面向对象编程基础] (12) 面向对象三大特性——继承

    [.net 面向对象编程基础] (12) 面向对象三大特性——继承 上节我们说了面向对象的三大特性之一的封装,解决了将对同一对象所能操作的所有信息放在一起,实现统一对外调用,实现了同一对象的复用,降低 ...

随机推荐

  1. weblogic 服务器部署SSL证书

    一.证书介绍 1.需要的证书 生产需要的证数如下: 即客户提供的证数: L1Croot.crt,L1Cchain.crt,entrustcert.crt,server,jks 证书清单: L1Croo ...

  2. Spring+Mybatis+Mysql搭建分布式数据库访问框架

    一.前言 用Java开发企业应用软件, 经常会采用Spring+MyBatis+Mysql搭建数据库框架.如果数据量很大,一个MYSQL库存储数据访问效率很低,往往会采用分库存储管理的方式.本文讲述如 ...

  3. MySQL事务以及隔离级别

    前言: 我一直想不到一个好的标题应该怎么写.我想MySQL的一些重要的内容.我在两次面试中都遇到过的,但直接用MySQL标题好像又不太贴切.干脆就是所写的内容吧. MySQL事务: transacti ...

  4. java 文本图片字体模糊优化处理

    昨天发现虽然图片生成字体够清楚了,但是会出现少量锯齿,所以调整了下,代码如下: g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, Renderin ...

  5. Problems at works

    1.ssh无法连接服务器:因部署ftp服务,误将/var目录的所有者和所属组改成了ftp,以致于SSH无法二次连接: 2.集群服务器的hadoop的datanode节点死亡,在对应节点拉起即可.若无法 ...

  6. 安装Accumulo——突破自己,就是成长

    前言 在我刚开始接触分布式集群的时候,是自己在几台虚拟机中手动安装的 Hadoop 和 Spark ,所以当时对 Hadoop 的配置有个简单的印象 ,但是后面发现了 Cloudera 和 Ambar ...

  7. JavaScript -- 知识点汇总

    js语法 1. javascript数据类型 JavaScript拥有动态类型.这意味着相同的变量可用作不同的类型:有 字符串,数字, 布尔值, 对象, 数组,Undefined和Null 对象: v ...

  8. 笔记:Jersey REST 传输格式

    通常REST接口会以XML或JSON作为主要传输格式,同时 Jersey 也支持其他的数据格式,比如基本类型.文件.流等格式. 基本类型 Java的基本类型又叫原生类型,包括4种整数(byte.sho ...

  9. 【Python&数据结构】 抽象数据类型 Python类机制和异常

    这篇是<数据结构与算法Python语言描述>的笔记,但是大头在Python类机制和面向对象编程的说明上面.我也不知道该放什么分类了..总之之前也没怎么认真接触过基于类而不是独立函数的Pyt ...

  10. NSURLSession http转Https

    1.设置代理 NSURLSession *sesson = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defa ...