OO.DAY01 类 对象 创建类和对象 访问成员

原创 2018年04月17日 10:02:40
回顾:
1.方法:
  1)封装特定的逻辑功能
  2)尽可能独立,一个方法只干一件事
  3)可以被反复调用多次
  4)避免代码重复,有利于代码维护、有利于团队协作开发
2.方法的定义:
    修饰词 返回值类型 方法名(参数列表){
 方法体
}
3.方法的调用:
  1)无返回值: 方法名(有参传参)
  2)有返回值: 数据类型 变量 = 方法名(有参传参);
              方法名(有参传参);--------------不建议
4.return:
  1)return 值; //1.1)结束方法的执行  1.2)返回结果给调用方
  2)return;    //2.1)结束方法的执行








笔记:


高质量的代码:
  复用性好、扩展性好、维护性好、
  可移植性好、健壮性好、效率高......




1.什么是类?什么是对象?
  1)现实世界是由很多很多对象组成的
    基于对象抽出了类
  2)对象:真实存在的单个个体
    类:类型、类别,代表一类个体
  3)类中可以包含:
    3.1)所有对象所共有的属性/特征(静的)---------成员变量
3.2)所有对象所共有的行为(动的)--------------方法
  4)一个类可以创建多个对象,
    同一类型的对象,结构相同,数据不同
  5)类是对象的模板,对象是类的具体的实例
2.如何创建类?如何创建对象?如何访问成员?
3.引用类型之间画等号:
  1)指向同一个对象Cell c=cc;
  2)对其中一个引用的修改会影响另外一个
    eg:房子钥匙
  基本类型之间画等号:
  1)赋值
  2)对其中一个变量的修改不会影响另外一个
    eg:身份证复印件
4.null:空,没有指向任何对象
       若引用的值为null,则该引用不能再进行任何操作了
       若操作则NullPointerException空指针异常






任务:
1.完成引用之间画等号与null的演示代码
2.完成经典案例一(打印员工信息)
3.至少重写两次:
  1)Cell类,包含:
    1.1)成员变量: row,col
    1.2)方法: drop(),moveLeft(n),getCellInfo()
  2)CellTest类,包含:
    2.1)main(){}
2.2)printWall(Cell cc){}



房子:对象
房子钥匙:引用
配一把钥匙:引用



引用
数据类型   引用类型变量   指向      对象
Cell         c              =       new Cell();



           引用
数据类型  引用类型变量   指向   对象
Student     zs            =      new Student();



    基本类型变量(变量)
int a;








Student zs = new Student();
zs.name = "zhangsan";
zs.age = 25;
zs.address = "LF";


new Student();
new Student();
new Student();





2


步骤:
1)找对象:很多很多小格子
2)抽类:格子类Cell
3)设计类中的成员变量和方法:
4)创建对象并测试






Cell
CellTest


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



数组------引用类型
类--------引用类型
String----引用类型



1.5


对象
月饼模子       月饼



1.4


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




Student zs = new Student();
zs.name = "zhangsan";
zs.age = 25;
zs.address = "河北廊坊";
zs.stuId = "001";
zs.eat();
zs.sleep();
zs.study();
zs.abc = 123; //编译错误


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


Student ww = new Student();
ww.name = "wangwu";
ww.age = 27;
ww.address = "山东";
ww.stuId = "003";
ww.eat();
ww.sleep();
ww.study();




class Student{
  String name;
  int age;
  String address;
  String stuId;
  void eat(){}
  void sleep(){}
  void study(){}
}



1.3
class Teacher{
  String name;
  int age;
  String address;
  double salary;
  void eat(){}
  void sleep(){}
  void teach(){}
}
class Dog{
  String type;
  String color;
  void 看门(){}
  void 咬(){}
}
class Car{
  String type;
  int width;
  int height;
  double price;
  String color;
  void start(){}
  void run(){}
  void stop(){}
  void back(){}
}



面向过程弊端:
1)缺乏对数据的封装
2)数据和方法(操作数据)的分离




基本数据类型-------------------不够
数组---------------------------不够
自己造类型---------------------想装什么就装什么


class Emp{ //类、数据类型
  String name;
  int age;
  double salary;
  void print(){
    System.out.println("name="+name);
System.out.println("age="+age);
System.out.println("salary="+salary);
  }
}


public class Test{
  public static void main(String[] args){
    Emp e = new Emp(); //创建Emp的一个对象
    e.name = "zhangsan";
e.age = 25;
e.salary = 5000;
    e.print();
  }
  
}











类声明、类实例化对象、对象中成员的访问、特殊对象的引用$this

类的声明面向程序的单位就是对象,但是对象又是通过类实例化出来的。首先我们要知道如何声明一个类。...
  • qq_33481237
  • qq_33481237
  • 2016-08-20 17:04:28
  • 509

C++类中对同类对象private成员访问

转自:http://www.cnblogs.com/yanqi0124/p/3828507.html 私有成员变量的概念,在脑海中的现象是,以private关键字声明,是类的实现部分,不对外...
  • eeeeelin
  • eeeeelin
  • 2016-10-21 14:11:58
  • 2038

浅谈 python的类和对象

浅谈 python的类  刚结束了python的方法,开始看类的时候有点迷糊,类的属性和方法,对象的属性和方法,构造函数,传参。下面就一点点来 分析下。   类(Class) 官方给出的解释是 用来...
  • guoxinjie17
  • guoxinjie17
  • 2017-09-05 13:23:38
  • 1534

Python学习笔记——知识强化

给程序传参数import sys print(sys.argv) 运行结果:列表推导式所谓的列表推导式,就是指的轻量级循环创建列表1. 基本的方式2. 在循环的过程中使用if3. 2个for循环4....
  • tichimi3375
  • tichimi3375
  • 2018-03-22 20:22:17
  • 11

static成员是不能被其所在class创建的实例访问?

关于静态方法以及静态变量的使用就不详细的说了,我就这里只是探讨一下“static成员是不能被其所在class创建的实例访问” 作为一个java的渣渣。最近在看static关键字的详解,看到网上的一篇...
  • zzzxzxh
  • zzzxzxh
  • 2015-03-27 10:54:31
  • 1024

类与对象、构造方法

  • 2011年12月07日 15:55
  • 1.68MB
  • 下载

C++类和对象总结

类和对象的区别: 类是抽象的,对象是具体的,所以类不占用内存,而对象占用内存; 总之类是对象的抽象,而对象是类的具体事例 假如:类是水果,那么对象就是香蕉…面向对象的三大特点: 封装、继承、多...
  • xiaobingRSQ
  • xiaobingRSQ
  • 2017-05-12 17:56:40
  • 1633

Java访问类中的私有成员(private member)

一般而言,一个类只允许访问另一个类中的public 然而当我们非要访问私有成员的时候,这时候Java的反射机制就用得上了。package com.comac.reflect; public cla...
  • sinat_36246371
  • sinat_36246371
  • 2016-10-13 22:36:40
  • 1382

object-c基础-创建类和对象

1、创建类 1.1、新建Single View app 模版项目,按Command + N 新建文件,创建类Student ,继承与NSObject 1.2、生成stu...
  • GuoGrower
  • GuoGrower
  • 2017-03-19 15:08:57
  • 1069

Java类和对象 详解(二)

上一篇Java类和对象 详解(一)讲解了类和对象的基本概念,定义和使用,以及对象引用传递的初步分析,下面接着来讲其他内容。一、面向对象的封装性封装(encapsulation)又叫隐藏实现(Hidin...
  • wei_zhi
  • wei_zhi
  • 2016-10-07 17:52:38
  • 3121
收藏助手
不良信息举报
您举报文章:OO.DAY01 类 对象 创建类和对象 访问成员
举报原因:
原因补充:

(最多只允许输入30个字)