1 概述

  类:是一组相关的属性和行为的集合。是一个抽象的概念。
     对象:是该类事物的具体表现形式。具体存在的个体。

  (1)面向对象思想
      面向对象是基于面向过程的编程思想。
    
      面向过程:强调的是每一个功能的步骤
      面向对象:强调的是对象,然后由对象去调用功能
    
  (2):面向对象的思想特点
      A:是一种更符合我们思想习惯的思想
      B:可以将复杂的事情简单化
      C:将我们从执行者变成了指挥者
        
    举例:
        买电脑:
            面向过程:我的了解电脑--了解我自己的需求--找对应的参数信息--去中关村买电脑--讨价还价--买回电脑
            面向对象:我知道我要买电脑 -- 班长去给我买 -- 班长就买回来了
        吃饭:
            面向过程:去超市买菜--摘菜--洗菜--切菜--炒菜--盛起来--吃
            面向对象:上饭店吃饭,你--服务员(点菜)--厨师(做菜)--服务员(端菜)--吃
例子:学生类

  1. /*
  2. 事物:
  3. 属性 事物的信息描述
  4. 行为 事物的功能
  5.  
  6. 类:
  7. 成员变量 事物的属性
  8. 成员方法 事物的行为
  9.  
  10. 定义一个类,其实就是定义该类的成员变量和成员方法。
  11.  
  12. 案例:我们来完成一个学生类的定义。
  13.  
  14. 学生事物:
  15. 属性:姓名,年龄,地址...
  16. 行为:学习,吃饭,睡觉...
  17.  
  18. 把事物要转换为对应的类:
  19.  
  20. 学生类:
  21. 成员变量:姓名,年龄,地址...
  22. 成员方法:学习,吃饭,睡觉...
  23.  
  24. 成员变量:和以前变量的定义是一样的格式,但是位置不同,在类中方法外。
  25. 成员方法:和以前的方法定义是一样的格式,但是今天把static先去掉。
  26.  
  27. 首先我们应该定义一个类,然后完成类的成员。
  28. */
  29. //这是我的学生类
  30. class Student {
  31. //定义变量
  32. //姓名
  33. String name;
  34. //年龄
  35. int age;
  36. //地址
  37. String address;
  38.  
  39. //定义方法
  40. //学习的方法
  41. public void study() {
  42. System.out.println("学生爱学习");
  43. }
  44.  
  45. //吃饭的方法
  46. public void eat() {
  47. System.out.println("学习烦了,要打游戏");
  48. }
  49.  
  50. //睡觉的方法
  51. public void sleep() {
  52. System.out.println("游戏累了,要睡觉");
  53. }
  54. }

例子2 手机类

  1. /*
  2. 手机类的测试
  3. */
  4. class Phone {
  5. //品牌
  6. String brand;
  7. //价格
  8. int price;
  9. //颜色
  10. String color;
  11.  
  12. //打电话的方法
  13. public void call(String name) {
  14. System.out.println("给"+name+"打电话");
  15. }
  16.  
  17. //发短信的方法
  18. public void sendMessage() {
  19. System.out.println("群发短信");
  20. }
  21.  
  22. //玩游戏的方法
  23. public void playGame() {
  24. System.out.println("玩游戏");
  25. }
  26. }
  27.  
  28. class PhoneDemo {
  29. public static void main(String[] args) {
  30. //创建手机对象
  31. //类名 对象名 = new 类名();
  32. Phone p = new Phone();
  33.  
  34. //直接输出成员变量值
  35. System.out.println(p.brand+"---"+p.price+"---"+p.color);
  36.  
  37. //给成员变量赋值
  38. p.brand = "诺基亚";
  39. p.price = 100;
  40. p.color = "灰色";
  41. //再次输出
  42. System.out.println(p.brand+"---"+p.price+"---"+p.color);
  43.  
  44. //调用方法
  45. p.call("林青霞");
  46. p.sendMessage();
  47. p.playGame();
  48. }
  49. }

3 对象内存图

java笔记12之面向对象初始的更多相关文章

  1. Java学习笔记12(面向对象五:构造方法、this再探)

    在开发中,经常需要在创建对象的同时明确对象对的属性值, 比如一个Person对象创建时候就应该有age和name等属性 那么如何做到在创建对象的同时给对象的属性初始化值呢? 这里介绍构造方法: 1.构 ...

  2. Java笔记(十五)……面向对象IV多态(polymorphism)

    概述 定义:某一类事物的多种存在形态. 例:动物中猫,狗. 猫这个对象对应的类型是猫类型 猫 x = new 猫(); 同时猫也是动物中的一种,也可以把猫称为动物. 动物 y = new 猫(); 动 ...

  3. Thinking in Java——笔记(12)

    Error Handling with Exceptions The ideal time to catch an error is at compile time, before you even ...

  4. Java笔记12:Java对象排序

    代码: import java.util.Arrays; import java.util.Comparator; class Person { private String name; privat ...

  5. python学习笔记(12):高级面向对象

    一.__slots__和property 1.__slots__魔术函数动态的添加方法和属性 2.直接暴露属性的局限性 3.使用get/set方法 4.利用@property简化get/set方法 5 ...

  6. JAVA自学笔记12

    JAVA自学笔记12 1.Scanner 1)JDK5后用于获取用户的键盘输入 2)构造方法:public Scanner(InputStream source) 3)System.in 标准的输入流 ...

  7. Java程序猿的JavaScript学习笔记(6——面向对象模拟)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  8. Thinking in Java 笔记

    大二就买了这本书,如今再看这本书,看到了一些以前没看的细节,也有了不同的体会.本文使用第4版,整理每章的笔记心得.老外的书有个特点,他会花费大量的文字去阐述一个概念,这比堆代码强多了. 第 1 章 对 ...

  9. java笔记整理

    Java 笔记整理 包含内容     Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...

随机推荐

  1. XML 序列化与PULL解析

    简介 Pull解析XML XmlPullParser解析器的运行方式与SAX解析器相似.它提供了类似的事件(开始元素和结束元素),但需要使用parser.next()方法来提取它们.事件将作为数值代码 ...

  2. sql server 2008 评估期已过期

    解决办法: 修改注册表: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\ConfigurationState里的&quo ...

  3. 错误记录--关于foreach,集合已修改;可能无法执行枚举操作

    集合已修改,可能无法执行枚举操作.今天在使用foreach遍历的时候出现了这样的错误.查了一下,这个是使用foreach的典型的错误问题问题.foreach在遍历取数据的过程中,枚举器只允许读,不允许 ...

  4. 使用Android SDK Manager自动下载速度慢解决方法

    可以在SDK Manager 的更新界面,勾选下载项并去android-sdk-windows\temp文件家中查找文件名称例如:android-2.3.1_r02-linux.zip在前面加上链接h ...

  5. angular细节整理

    记录angularjs中比较容易忽视的问题 1.关于动态生成ui-sref的问题 ui-route中ui-sref中的路径无法动态生成的,如果要实现动态生成ui-sref路径,可以使用$state.g ...

  6. 【转】JAVA的StringBuffer类

    [转]JAVA的StringBuffer类    StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBu ...

  7. (转)MySQL数据库命名规范及约定

    一.[操作规范]1. 如无备注,则表中的第一个id字段一定是主键且为自动增长:2. 如无备注,则数值类型的字段请使用UNSIGNED属性:3. 如无备注,排序字段order_id在程序中默认使用降序排 ...

  8. sencha app build 到 Capturing theme image不执行

    解决sencha app build 到 Capturing theme image不执行 今天电脑重装系统,重新安装了sencha cmd,但是在打包时,到了 Capturing theme ima ...

  9. plist解析, 简易实现.

    源码 class Xml { public: typedef std::pair<std::wstring, std::wstring> NodeT; static std::vector ...

  10. 【转】Hibernate和ibatis的比较

    1. 简介 Hibernate是当前最流行的O/R mapping框架.它出身于sf.net,现在已经成为Jboss的一部分了.iBATIS是另外一种优秀的O/R mapping框架,现已改名叫myB ...