oop.day03

回顾:
1.猜字符小游戏
2.什么是类?什么是对象?
1)现实世界是由很多很多对象组成的
基于对象抽出了类
2)对象是真正存在的单个的个体
类代表一类个体,类型,类别
3)类中包含:
3.1)所有对象所共有的特征/属性---------变量
3.2)所有对象所共有的行为----------------方法
4)一个类可以创建多个对象
同一个类的多个对象,结构相同,数据不同
5)类是对象的模板,对象是类的具体的实例

笔记:
1.如何创建类?如何创建对象?
2.引用类型之间画等号: 家门钥匙
1)指向同一个对象(数据有一份)
2)对其中一个引用的修改,会影响另外一个引用
基本类型之间画等号: 身份征复印件
1)赋值(数据有两份)
2)对其中一个值的修改,不会影响另外一个值
3.null:
1)空,即:不再指向任何对象
2)若引用的值为null,则不能再进行任何操作了
若操作则NullPointerException(空指针异常)
4.方法签名=方法名+参数列表
5.方法的重载(overload):
1)一个类中,方法名称相同,参数列表不同,称方法的重载
2)编译器在编译时,自动根据方法的签名绑定调用不同的方法
6.构造方法:
1)给成员变量赋初值
2)与类同名,没有返回值类型
3)在创建(new)对象时被自动调用
4)若自己不写构造,则系统默认提供一个无参构造
若自己写构造,则不再默认提供
5)构造方法可以重载
7.this关键字:
1)指代当前对象,哪个对象调指的就是哪个对象
方法中访问成员变量,默认有个this.
2)用法:
2.1)this.成员变量名---------访问成员变量
2.2)this.方法名()-------------调用方法(几乎不用)
2.3)this()-----------------------调用构造方法

任务:
1.做Cell类的3个构造方法,并测试
2.看Demo.java与OverloadDemo.java-----自己做小例子
3.Cell和CellTest再做一次
4.课后作业---第1天的全部,第2天的前两个做了
5.每日一练

Cell c = new Cell(2,5);
c.drop();
c.moveLeft(3);
String str = c.getCellInfo();

Cell c1 = new Cell(); //0,0
Cell c2 = new Cell(3); //3,3
Cell c3 = new Cell(2,5); //2,5

class Cell{
int row;
int col;
Cell(){
this(0,0); //调用构造方法
}
Cell(int n){
this(n,n); //调用构造方法
}
Cell(int row,int col){
this.row=row;
this.col=col;
}
void drop(){
row++;
}
void moveLeft(int n){
col-=n;
}
String getCellInfo(){
return row+","+col;
}
}

Cell c = new Cell();
c.row = 2;
c.col = 5;
c.drop();

Cell cc = new Cell();
cc.row = 6;
cc.col = 3;
cc.drop();

Cell ccc = new Cell();
ccc.drop();

Cell c = new Cell(2,5);
c.drop();

class Cell{
int row; //成员变量
int col;
Cell(int row,int col){ //局部变量
this.row = row; //c.row=2
this.col = col; //c.col=5
}
void drop(){
row++; //c.row++
}
}

Student zs = new Student();
Cell c = new Cell();

//1.创建一个Student对象
//2.调用构造方法
Student zs = new Student("zhangsan",25,"河北廊坊");
Student ls = new Student("lisi",26,"佳木斯");
Student zs = new Student(); //编译错误

class Student{
String name;
int age;
String address;
Student(){
}
//给成员变量赋初值---应用率非常高
Student(String name1,int age1,String address1){
name = name1;
age = age1;
address = address1;
}
}

Student zs = new Student();
zs.setInfo("zhangsan",25,"河北廊坊");

Student ls = new Student();
ls.setInfo("lisi",26,"黑龙江佳木斯");

Student zs = new Student();
zs.name = "zhangsan";
zs.age = 25;
zs.address = "河北廊坊";

Student ls = new Student();
ls.name = "lisi";
ls.age = 26;
ls.address = "黑龙江佳木斯";

System.out.println("helloworld");
System.out.println(250);
System.out.println(8.88);
System.out.println(true);
System.out.println(‘a‘);
System.out.println();

1)找对象: 一堆小格子
2)抽类: 格子类Cell
3)设计类中的成员变量和方法
4)创建对象、访问成员变量以及调用方法

//new出来的是对象,对象是一个数据
new Student();
new Student();

Student zs = new Student();
Student ls = new Student();

zs.name = "zhangsan";
zs.age = 24;
zs.address = "";

类(类型) 引用类型变量(引用) 对象
Student zs = new Student();
对zs的操作就是对对象的操作

面向对象:难(抽象)

合理不合理----------------

int num; //基本类型变量(变量)

1)下落一格
2)左移n格
3)获取格子行号和列号

Cell
CellTest

class Cell{
int row; //行号
int col; //列号
void drop(){ //下落一格
row++;
}
void moveLeft(int n){ //左移n格
col-=n;
}
String getCellInfo(){ //获取格子行号和列号
return row+","+col;
}

}

变量分两种:
1.局部变量: 方法中
从声明开始,到包含它最近的大括号结束
2.成员变量: 类中,方法外
整个类

class Aoo{
int num;--------------成员变量
void show(){
int num2;-----------局部变量
}
}

时间: 2024-08-07 00:17:08

oop.day03的相关文章

在java中,OOA是什么?OOD是什么?OOP是什么?

OOA Object-Oriented Analysis:面向对象分析方法 是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题.OOA与结构化分析有较大的区别.OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析. OOA(面向对象的分析)模型由5个层次(主题层.对象类层.结构层.属性层和服务层)和5个活动(标识对象类.标识结构.定义主题.定义属性和定义服务)组成.在这种方法中定义了两种对象类之间的结构,

OOP的三大特性------封装、继承、多态

封装 1.<1>类背后隐藏的思想是数据抽象和封装 <2>信息隐藏,隐藏对象的实现细节,不让外部直接访问到 将数据成员和成员函数一起包装到一个单元里,单元以类的形式实现 <3>将数据成员和成员函数包装进类中,加上具体实现的隐藏, 共同被称作封装,其结果是一个同时带有特征(比如车的价格 车牌号)和 行为(比如开车 停车)的数据类型 <4>定义类,定义其数据成员.成员函数的过程称为封装类 2.信息隐藏是OOP最重要的功能之一,也是使用访问修饰符的原因 信息隐藏的原

玩转JavaScript OOP[2]&mdash;&mdash;类的实现

概述 当我们在谈论面向对象编程时,我们在谈论什么?我们首先谈论的是一些概念:对象.类.封装.继承.多态.对象和类是面向对象的基础,封装.继承和多态是面向对象编程的三大特性. JavaScript提供了对象却缺乏类,它不能像C#一样能显式地定义一个类.但是JavaScript的函数功能非常灵活,其中之一就是构造函数,结合构造函数和原型对象可以实现"类". 对象和类的概念 对象 "对象"是面向对象编程中非常重要的一个概念,一个对象是一个"东西"(某个

C#语言-04.OOP基础

a. OOP:面对对象思想 i. 类:是一种功能强大的数据类型,而且是面向对象的基础 1. 语法:访问修饰符 class 类名{ //类的主体 } 2. 成员变量:不以"函数"形式体现 a. 常量:代表与类相关的常量值 b. 变量:类中的变量 c. 事件:由类产生的通知,用于说明发生了什么事件 d. 类型:属于类的局部类型 3. 成员函数:以"函数"形式体现 a. 方法:完成类中各种计算或功能的操作,不能和类同名.不能和类中其他成员同名 b. 属性:定义类的值,并对

C++ Primer 笔记——OOP

1.基类通常都应该定义一个虚析构函数,即使该函数不执行任何实际操作也是如此. 2.任何构造函数之外的非静态函数都可以是虚函数,关键字virtual只能出现在类内部的声明语句之前而不能用于类外部的函数定义.如果基类把一个函数声明成虚函数,则该函数在派生类中隐式地也是虚函数.成员函数如果没有被声明成虚函数,则其解析过程发生在编译时而非运行时. 3.继承的访问说明符的作用是控制派生类从基类继承而来的成员是否对派生类用户可见. 4.在一个对象中,继承自基类的部分和派生类自定义的部分不一定是连续存储的.C

PHP OOP 面向对象的特性

一. OOP 的封装 隐藏对象的字段和实现细节,仅对外公开接口,控制在程序中字段的读和修改的访问级 别:将抽象得到的数据和行为(或功能)相结合,形成 一个有机的整体,也就是将数据与 操作数据的源代码进行有机的结合,形成"类",其中数据和函数都是类的成员. 字段的作用域 1.public 公共的 (类外可以访问) 2.private 私有的 (类内可以访问) 3.protected 受保护的 (类内和子类可以访问,类外不可访问) 创建使用了私有的字段,这样外部就无法访问了 class C

js oop中的三种继承方法

JS OOP 中的三种继承方法: 很多读者关于js opp的继承比较模糊,本文总结了oop中的三种继承方法,以助于读者进行区分. <继承使用一个子类继承另一个父类,子类可以自动拥有父类的属性和方法.(继承的两方,发生在两个类之间)> 一.通过object实现继承 1:定义父类 function Parent(){} 2:定义子类 funtion Son(){} 3:通过原型给Object对象添加一个扩展方法. Object.prototype.customExtend = function(p

面向对象 OOP

[面向对象编程OOP] 1 语言的分类 面向机器 :汇编语言 面向过程 :c语言 面向对象 :c++ Java PHP等 2 面向过程与面向对象 面向过程:专注于如何去解决一个问题的过程,编程特点是一个函数去实现过程操作,没有类与对象的概念 面向对象:专注于有哪一个对象实体去解决这个问题,编程特点是:出现一个个的类,由类去生成对象 [面向对象的三大特征] 继承 封装 多态 类与对象的关系 1类 : 一群有相同特征(属性)和行为(方法)的集合 人类 属性:身高 ,年龄.体重, 方法:吃饭 睡觉 敲

跟着百度学PHP[4]OOP面对对象编程-7-OOP的一些关键子讲解

面对对象常用的一些关键子:http://www.cnblogs.com/xishaonian/p/6146794.html排版不是很好望见谅. THE END 跟着百度学PHP[4]OOP面对对象编程-7-OOP的一些关键子讲解