温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

好程序员Java教程分享Java面向对象与面向过程

发布时间:2020-06-24 14:50:21 来源:网络 阅读:149 作者:wx5da18b5c4b01e 栏目:编程语言

  好程序员Java教程分享Java面向对象与面向过程,面向对象: 是一种看待问题, 解决问题的思维方式, 着眼点在于找到一个能够帮助解决问题的实体, 然后委托这个实体来解决问题

  面向过程: 是一种看待问题, 解决问题的思维方式, 着眼点在于问题是怎样一步步的解决的, 然后亲力亲为的去解决这个问题

Java是一种面向对象的语言:

​ 用Java这门语言, 可以很容易的写出具有面向对象思维方式的代码

用面向对象的编程语言写出的代码, 一定是面向对象的代码? 错!

大象装冰箱:

面向过程:

  1. 打开冰箱门 我
  2. 把大象装进去 我
  3. 关上冰箱门 我

面向对象:

  1. 打开冰箱门 冰箱
  2. 把大象装进去 大象
  3. 关上冰箱门 冰箱

小明要去组装一台电脑:

面向过程:

  1. 补充电脑相关知识 小明
  2. 去市场买零配件 小明
  3. 将零配件运回家中 小明
  4. 组装 小明

面向对象:

  1. 找到一个懂电脑的朋友(老王) 小明
  2. 去市场买零配件 老王
  3. 将零配件运回家中 快递
  4. 组装 老王

类和对象

对象: 能够帮助解决问题的那个实体

类: 若干个具有相同的特征和行为的对象的集合

类和对象的关系: 类是对象的集合, 对象是类的个体

张三, 李四, 王五, 赵六, 人类

哈士奇, 泰迪, 金毛, 阿拉斯加, 拉布拉多, 萨摩耶... 狗类

快递: 顺丰, 各种通, 各种达,

超级英雄(Super Hero): Caption American, Iron man, Spider man, Doctor Strange, Ant

1.6.2 类的设计

类的语法:

class 类名 {
    // 类体
    // 类是若干个具有相同的特征和行为的对象的集合
    // 在类体中, 定义了这些相同的特征和行为
    // 特征: 表现出的是属性(就是一个全局变量)
    // 行为: 表现出的是方法(不要加static)
    // 属性, 是有默认值的
    // 整型: 0
    // 浮点型: 0.0
    // 布尔型: false
    // 字符型: '\0'  '\u000'
    // 引用数据类型: null
    String name;
    int age;

    void eat() {}
    void sleep() {}
    void coding() {}
}

注意事项:

  1. 类名是一个标识符, 遵循大驼峰命名法
  2. 一个java文件中可以写多个类, 但是只有和文件名相同的那个类名可以修饰为public
  3. 在程序编译的时候, 每一个类都会生成一个.class字节码文件, 而且.class文件的名字和类名相同

注意:
在程序中, 是先有类, 然后再从这个类中实例化一个对象

1.6.3 对象的实例化
1.6.4 对象的内存分析
1.6.5 类中的成员的访问

static:

用关键字static修饰的成员, 叫做静态成员

没有用关键字static修饰的成员, 叫做非静态成员

静态成员:

  1. 静态成员是属于类的, 在访问的时候, 需要用类来访问
  2. 静态成员开辟空间, 是在这个类第一次被加载到内存中的时候开辟的

非静态成员:

  1. 非静态成员是属于对象的, 在访问的时候, 需要用对象来访问
  2. 非静态成员开辟空间, 是在这个对象被实例化的时候开辟的

  3. 静态方法中, 不能直接访问非静态成员
  4. 在非静态的方法中, 可以直接访问静态的成员
class Person {
    String name;
    static int a;

    void eat() {}
    static void sleep() {}
}
class Program {
    public static void main(String[] args) {
        Person xiaoming = new Person();
        // 访问非静态成员
        xiaoming.name = "xiaoming";
        xiaoming.eat();
        // 访问静态成员
        Person.a = 10;
        Person.sleep();
        // 注: 
        // 访问静态的成员, 也可以使用对象来访问, 但是会有警告
        // 推荐使用类来访问静态成员
    }
}
1.6.6 类是一种自定义的类型
1.6.7 this关键字

this: 在程序中,代表对当前对象的引用。

当前对象:

​ this关键字是需要用在某一个非静态方法中。

​ 非静态方法需要用对象来访问,哪个对象调用了这个方法,this就是谁

this关键字可以被省略:

在类中访问当前的非静态的成员,可以省略掉this

但是有一种情况不能省略:

public class Person {
  String name;
  int age;
  char gender;

  void setInfo(String name, int age, char gender) {
      // 就近原则
      this.name = name;
      this.age = age;
      this.gender = gender;
  }
}
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI