java笔记12之面向对象初始
1 概述
类:是一组相关的属性和行为的集合。是一个抽象的概念。
对象:是该类事物的具体表现形式。具体存在的个体。
(1)面向对象思想
面向对象是基于面向过程的编程思想。
面向过程:强调的是每一个功能的步骤
面向对象:强调的是对象,然后由对象去调用功能
(2):面向对象的思想特点
A:是一种更符合我们思想习惯的思想
B:可以将复杂的事情简单化
C:将我们从执行者变成了指挥者
举例:
买电脑:
面向过程:我的了解电脑--了解我自己的需求--找对应的参数信息--去中关村买电脑--讨价还价--买回电脑
面向对象:我知道我要买电脑 -- 班长去给我买 -- 班长就买回来了
吃饭:
面向过程:去超市买菜--摘菜--洗菜--切菜--炒菜--盛起来--吃
面向对象:上饭店吃饭,你--服务员(点菜)--厨师(做菜)--服务员(端菜)--吃
例子:学生类
- /*
- 事物:
- 属性 事物的信息描述
- 行为 事物的功能
- 类:
- 成员变量 事物的属性
- 成员方法 事物的行为
- 定义一个类,其实就是定义该类的成员变量和成员方法。
- 案例:我们来完成一个学生类的定义。
- 学生事物:
- 属性:姓名,年龄,地址...
- 行为:学习,吃饭,睡觉...
- 把事物要转换为对应的类:
- 学生类:
- 成员变量:姓名,年龄,地址...
- 成员方法:学习,吃饭,睡觉...
- 成员变量:和以前变量的定义是一样的格式,但是位置不同,在类中方法外。
- 成员方法:和以前的方法定义是一样的格式,但是今天把static先去掉。
- 首先我们应该定义一个类,然后完成类的成员。
- */
- //这是我的学生类
- class Student {
- //定义变量
- //姓名
- String name;
- //年龄
- int age;
- //地址
- String address;
- //定义方法
- //学习的方法
- public void study() {
- System.out.println("学生爱学习");
- }
- //吃饭的方法
- public void eat() {
- System.out.println("学习烦了,要打游戏");
- }
- //睡觉的方法
- public void sleep() {
- System.out.println("游戏累了,要睡觉");
- }
- }
例子2 手机类
- /*
- 手机类的测试
- */
- class Phone {
- //品牌
- String brand;
- //价格
- int price;
- //颜色
- String color;
- //打电话的方法
- public void call(String name) {
- System.out.println("给"+name+"打电话");
- }
- //发短信的方法
- public void sendMessage() {
- System.out.println("群发短信");
- }
- //玩游戏的方法
- public void playGame() {
- System.out.println("玩游戏");
- }
- }
- class PhoneDemo {
- public static void main(String[] args) {
- //创建手机对象
- //类名 对象名 = new 类名();
- Phone p = new Phone();
- //直接输出成员变量值
- System.out.println(p.brand+"---"+p.price+"---"+p.color);
- //给成员变量赋值
- p.brand = "诺基亚";
- p.price = 100;
- p.color = "灰色";
- //再次输出
- System.out.println(p.brand+"---"+p.price+"---"+p.color);
- //调用方法
- p.call("林青霞");
- p.sendMessage();
- p.playGame();
- }
- }
3 对象内存图
java笔记12之面向对象初始的更多相关文章
- Java学习笔记12(面向对象五:构造方法、this再探)
在开发中,经常需要在创建对象的同时明确对象对的属性值, 比如一个Person对象创建时候就应该有age和name等属性 那么如何做到在创建对象的同时给对象的属性初始化值呢? 这里介绍构造方法: 1.构 ...
- Java笔记(十五)……面向对象IV多态(polymorphism)
概述 定义:某一类事物的多种存在形态. 例:动物中猫,狗. 猫这个对象对应的类型是猫类型 猫 x = new 猫(); 同时猫也是动物中的一种,也可以把猫称为动物. 动物 y = new 猫(); 动 ...
- Thinking in Java——笔记(12)
Error Handling with Exceptions The ideal time to catch an error is at compile time, before you even ...
- Java笔记12:Java对象排序
代码: import java.util.Arrays; import java.util.Comparator; class Person { private String name; privat ...
- python学习笔记(12):高级面向对象
一.__slots__和property 1.__slots__魔术函数动态的添加方法和属性 2.直接暴露属性的局限性 3.使用get/set方法 4.利用@property简化get/set方法 5 ...
- JAVA自学笔记12
JAVA自学笔记12 1.Scanner 1)JDK5后用于获取用户的键盘输入 2)构造方法:public Scanner(InputStream source) 3)System.in 标准的输入流 ...
- Java程序猿的JavaScript学习笔记(6——面向对象模拟)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Thinking in Java 笔记
大二就买了这本书,如今再看这本书,看到了一些以前没看的细节,也有了不同的体会.本文使用第4版,整理每章的笔记心得.老外的书有个特点,他会花费大量的文字去阐述一个概念,这比堆代码强多了. 第 1 章 对 ...
- java笔记整理
Java 笔记整理 包含内容 Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...
随机推荐
- XML 序列化与PULL解析
简介 Pull解析XML XmlPullParser解析器的运行方式与SAX解析器相似.它提供了类似的事件(开始元素和结束元素),但需要使用parser.next()方法来提取它们.事件将作为数值代码 ...
- sql server 2008 评估期已过期
解决办法: 修改注册表: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\ConfigurationState里的&quo ...
- 错误记录--关于foreach,集合已修改;可能无法执行枚举操作
集合已修改,可能无法执行枚举操作.今天在使用foreach遍历的时候出现了这样的错误.查了一下,这个是使用foreach的典型的错误问题问题.foreach在遍历取数据的过程中,枚举器只允许读,不允许 ...
- 使用Android SDK Manager自动下载速度慢解决方法
可以在SDK Manager 的更新界面,勾选下载项并去android-sdk-windows\temp文件家中查找文件名称例如:android-2.3.1_r02-linux.zip在前面加上链接h ...
- angular细节整理
记录angularjs中比较容易忽视的问题 1.关于动态生成ui-sref的问题 ui-route中ui-sref中的路径无法动态生成的,如果要实现动态生成ui-sref路径,可以使用$state.g ...
- 【转】JAVA的StringBuffer类
[转]JAVA的StringBuffer类 StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBu ...
- (转)MySQL数据库命名规范及约定
一.[操作规范]1. 如无备注,则表中的第一个id字段一定是主键且为自动增长:2. 如无备注,则数值类型的字段请使用UNSIGNED属性:3. 如无备注,排序字段order_id在程序中默认使用降序排 ...
- sencha app build 到 Capturing theme image不执行
解决sencha app build 到 Capturing theme image不执行 今天电脑重装系统,重新安装了sencha cmd,但是在打包时,到了 Capturing theme ima ...
- plist解析, 简易实现.
源码 class Xml { public: typedef std::pair<std::wstring, std::wstring> NodeT; static std::vector ...
- 【转】Hibernate和ibatis的比较
1. 简介 Hibernate是当前最流行的O/R mapping框架.它出身于sf.net,现在已经成为Jboss的一部分了.iBATIS是另外一种优秀的O/R mapping框架,现已改名叫myB ...