Java面向对象(一)

来源:互联网 发布:淘宝网手机网页版 编辑:程序博客网 时间:2024/05/22 13:05

面向对象

 

 对象 :客观存在的物体  是结构化数据.也就是:对象就是数据   对象由属性组成

 类是对象的结构定义,是对象的结构模板.利用类来创建对象.根据对象的特征设计(抽象出)

 引用:引用是指向对象的代词,引用变量通过对象地址间接引用了内存堆中的对象.

 属性:是对象的特征,在类上定义(声明),是属于对象个体的变量

 方法:是对象的行为,是对象动作, 是算法,是利用对象数据计算来完成,是计算过程:: 方格的下落:行增加

 this: 这个,在方法运行期间代表当前这个对象本身,this本质上是一个局部变量,是方法的隐含参数,在方调用时候隐含接收了方法调用者的引用。

this是在方法调用和运行期间,动态绑定到调用方法的这个对象!在编译期间不能确定是哪一个对象!

     

构造器(构造方法)

    1)业务:上是描述对象的创建过程的.

    2)本质上是分配对象的堆空间并初始化对象属性

构造器的语法:

    1) 构造器的名字与类名一致(包括大小写)

    2) 不能声明返回值(包括不能使用void)

    3) 可以有参数,参数是创建对象依赖的前提条件.

    4) 如果类没有声明构造器, Java会提供默认构造器.

构造方法方法区别

   构造方法: 1)构造方法由于"创建"并且初始化对象!

             2) 名字必须与类名一致,不能声明返回值!

             3) 使用new运算调用构造器.

   方法:    1)对象的"功能"封装了功能的计算方法.

             2) 一般不与类名一样,一定声明返回值

             3) 方法使用对象的引用调用.

  注意:在同一个包(package)中不能有同名的类!

  package day01;

   Demo01.java

     Demo01.class

     Cell.class

   Demo02.java

     Demo02.class

     Cell.class //编译错误!

 

public class Demo02 {public static void main(String[] args) {Cell1 c1 = new Cell1(2,4);//调用构造器c1.drop();//调用方法System.out.println(c1.row+","+c1.col); }}class Cell1{int row; int col; /** 构造器 */public Cell1(int row, int col){this.row = row;this.col = col;}public void drop(){ this.row++; }}//class Cell{}//编译错误, 在package day02中有同名的类了.

 

 Java中的println()方法是重载的方法 ,Demo05.java

               

public class Demo05 {public static void main(String[] args) {char[] chs = {65,66,67};int[] ary = {65,66,67};//如下println()是3个不同的重载方法System.out.println(chs);//按照字符串输出:ABC//按照Object 的 toString()结果输出System.out.println(ary);System.out.println();//输出 回车字符}}

面向对象3大特征:   封装继承 多态。

狗是多态的,圆形是多态得到,美女是多态的。

 多态:多种多样

    1) 个体(对象)是多种多样的

      Java 利用继承实现:父类型变量引用的子类型对象

      (实例)是多种多样的.

       飞行物体有两种

    2) 行为是多种多样的:重载和重写

      重写:子类型修改了父类型的方法(行为),是调用

      方法的结果表现为多样性.分别调用子类型的具体方法

       检查飞行物体被击中,有两种不同的方法.

      重载:方法参数变量不同, Java会调用不同的方法

美资软件公司JAVA工程师电话面试题目   1. Talk about overriding, overloading.

 

/** "重写" ObjecttoString方法 */

class Cell{   ……   public String toString(){       returnrow+","+col;   }}       ……Cell cell = new Cell(5, 5);       // 先执行 cell.toString()然后将返回结果输出       System.out.println(cell);//调用toString()输出


 

父类型可以引用子类型的实例

属性是具体绑定到类型

This()  -------- 调用本类中其他构造器

  

原创粉丝点击