1、面向过程和面向对象的设计思想

  • 面向过程:procedure oriented programming 缩写 POP。

    • 分析出解决问题所需要的步骤,然后把步骤一步一步实现。
    • 面向过程直接关注流程。
  • 面向对象:object oriented programming 缩写 OOP面向对象的编程语言。
    • 以分类的方式进行思考和解决问题。
    • 面向对象先对整体关系作出分类,然后根据不同的类深入细节的处理。
    • 面向对象的思想符合人类的认知习惯。
  • 面向对象无法取代面向过程,他们是相辅相成的。面向对象关注于从宏观上把握事物之间的关系,在具体到如何实现某个细节时,仍然采用面向过程的思维方式。面向对象如果离开了面向过程,就无法实现真正的落地, 成为无源之水。

2、java类

  • 什么是类?

    • 类是一个模板,它描述一类事物的属性和行为的集合.
    • 类是表示一个客观世界某类群体的一些基本特征抽象.
  • 类的结构
    • 成员变量:事物属性的描述;
    • 方法:事物的行为;(可以做的事情);
    • 构造方法:用于创建对象;
    • 内部类: 即在类体中声明的类;
    • 块:一段没有名称的代码块。

3、Java类的定义

  • 第一步:发现类。
类的声明格式为: [访问权限修饰符] [修饰符] class Car{ }

访问修饰符有两种public,无(默认)。
修饰符:final,abstract 关键字class用来定义一个类 Java类名的。
命名规范: 类名首字母大写,见名知意,驼峰表示。
Java类名的命名规范: 类名首字母大写,见名知意,驼峰表示。

  • 第二步:发现类的共有属性(成员变量)。
声明成员变量的格式为:
[访问权限修饰符] [修饰符] type attr_name [=defaultValue] ;
public class Car{//成员变量定义String name; //名称String color; // 颜色float price;//价格
}
  • 第三步:发现类的方法。
方法声明格式为:
[访问权限修饰符] [修饰符]/ void start(){ System.out.println("汽车启动");[return 返回值;]
}
public class Car{//成员变量定义String name; //名称String color; // 颜色float price;//价格
}

4、java对象

  • 对象:对象是类的一个实例,是以类为模板在内存中创建的实际存在的实例。

5、对象的创建和使用

  • 对象的创建和使用

    • Car x1 = new Car();
    • Car x1:使用Car类作为类型声明一个变量x1.
    • new Car():使用new + Car类构造方法创建对象.
    • =:将右边创建的对象地址 赋给 左边的x1变量.
    • 使用x1变量访问对象中的成员变量和成员方法.
  • 同一类的每个对象有不同的成员变量存储空间。
  • 同一类的每个对象共享该类的方法。

6、类和对象

  • 总结类和对象

    • 类是一类事物的抽象概念,是一个模型.
    • 对象是由这个模型所创造的一个个具体存在的,实实在在存在的实例. 所以创建对象的过程也叫实例化对象.
  • 现实生活中先有对象后有类,而编程时先设计类后创建对象.

7、变量分类

按照位置变量分为:

  • 成员变量:

    • 成员变量是定义在类中,方法体之外的变量。
    • 成员变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)。
    • 在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。
    • 成员变量在创建对象的时候会从类中复制一份到对象中。 成员变量可以被类中方法、构造方法和特定类的语句块访问。
    • 成员变量的作用范围为整个类体。
  • 局部变量:
    • 在方法、构造方法或者语句块中定义的变量被称为局部变量。
    • 局部变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)。
    • 局部变量在使用前必须初始化赋值。
    • 变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

8、方法分类

  • 成员方法:成员方法是定义在类中。
    语法格式:
修饰符 返回值类型 方法名 ( 参数列表) {方法体语句;[return 返回值]
}
  • 构造方法:用来初始化对象的方法

9、构造方法

  • 构造方法名与类名相同,且没有返回值,且不需要使用void修饰。
  • 作用:在构造方法中为创建的对象初始化赋值。
  • 在创建一个对象的时候,至少要调用一个构造方法。
  • 每个类都有构造方法。如果没有显式地为类定义构造方法,Java将会为该类提供一个默认构造方法,但是只要在一个Java类中定义了一个构造方法后,默认的无参构造方法即失效。
  • 一个类可以有多个构造方法。 例:
public class Car{public Car(){}public Car(String name){// 这个构造方法有一个参数:name}
}

例:创建Car类的对象

Car car1 = new Car();
Car car2 = new Car(“宝马”);

10、方法的重载

  • 方法的重载是指同一个类中具有相同的名字,但参数不同的多个方法。
  • 参数不同(可以有三方面的不同)
    • 数量不同
    • 类型不同
    • 顺序不同
  • 调用时,会根据不同的参数表选择对应的方法。
  • 注意:方法重载跟方法的返回值类型没有任何关系。
/*1.发现类[访问权限修饰符][修饰符] class类{}*/
public class Car {/*2.定义类的成员变量(属性)*/String name;float price;String color;/*构造方法作用:初始化新创建的对象特点:构造方法名与类名相同,没有返回值,不需要void修饰每个类中至少有一个构造方法,也可以定义多个,每创建一个对象时,至少调用一个构造方法*///无参构造,为新建的对象用默认值初始化赋值public Car() {System.out.println("Car类无参构造方法");}//有参构造,为新建的对象初始化赋值public Car(String n, float p, String c) {System.out.println("Car类有3个参构造方法");name = n;price = p;color = c;}/*方法重载:在同一个类中,有多个方法名相同,但参数不同的方法参数:个数类型顺序方法重载与返回值无关*/public Car(String n, float p) {System.out.println("Car类有2个参构造方法");name = n;price = p;}/*3.定义类的成员方法(行为/功能)*/public void run() {System.out.println(name + "汽车行驶");}/*成员方法:定义在类中,没有被static修饰*/public void stop() {System.out.println(name + "汽车停止");}
}
public class TestCar {public static void main(String[] args) {/*new Car();构造方法,每一个类中默认有一个*/Car bm = new Car();bm.name = "宝马";bm.price = 10000;bm.color = "黑色";bm.run();Car bc = new Car();bc.name = "奔驰";bc.price = 20000;bc.color = "白色";bc.stop();Car dz = new Car("大众", 2000f, "粉色");System.out.println(dz.name);System.out.println(dz.price);System.out.println(dz.color);dz.run();Car msld = new Car("玛莎拉蒂", 9999f);System.out.println(msld.name);System.out.println(msld.price);msld.run();}
}

面向过程和面向对象的设计思想、java类、Java类的定义、java对象、对象的创建和使用、类和对象、变量分类、方法分类、构造方法、方法的重载相关推荐

  1. 面向过程和面向对象的编程思想 复习原型 构造函数和实例对象和原型对象之间的关系

    体会面向过程和面向对象的编程思想 <!DOCTYPE html> <html lang="en"> <head><meta charset ...

  2. 从面向过程到面向对象编程的思想转变

    项目的需求,要实现一个功能:更新表中若干行的部分列数据.Are you 明白大概要实现什么功能了吗? 嗯,我知道你明白了.那就接着往下看把. 遇到这样的问题,我相信很多人首先想到的方法是直接使用upd ...

  3. Java 从面向过程走向面向对象的程序设计思想

    什么是面向过程?面向对象? 它们都是解决问题的思路 我用一个生活的例子来区别它们: 起床,洗漱,吃饭--等这些都是生活中的事 吃饭:我们想吃饭之前要做饭,饭菜可以是自己做,或者爸妈做,也可以下馆子 面 ...

  4. 面向过程与面向对象的程序设计思想

    面向过程:"面向过程"是一种以事件为中心的编程思想.分析出解决问题所需要的步骤,然后用函数把这些步骤一步步实现,使用的时候一个个一次调用就行了. 面向对象:"面向对象&q ...

  5. java面向过程和面向对象

    面向过程(Procedure Oriented):说的是功能的行为 面向对象(Object Oriented,简称OO):说的是功能的对象 面向过程理解: 当学习java的时候先了解java语言优良的 ...

  6. 面向过程与面向对象——编程思想的演变

    编程语言从无到有,据维基百科统计,至今为止有600多种.如此众多语言,需要逐个学习吗?实际上编程语言都是相通的,编程语言只需要精通一门即可,其他都能融会贯通.比如Java与C++就差不多,Java和C ...

  7. java面向过程编程怎么写_从面向过程到面向对象,我的编程之路

    也许现在新一代的程序员一开始涉足的就是c++,C#,Java这类面向对象的语言,如果这样,这篇文章可能得不到他们的认同. 这里,我只想写写我从面向过程到面向对象开发成长中的一些感想而已. 我最初学习的 ...

  8. JAVA入门级教学之(面向过程和面向对象的区别)

    目录 JAVA入门级教学之(面向过程和面向对象的区别) 面向过程和面向对象的区别: -面向过程: -面向对象: -发展历程: -生命周期中包括: -什么是类: -什么是对象: -软件开发的过程: -重 ...

  9. java知识点7——面向过程和面向对象、面向对象的内存分析、构造方法

    面向过程和面向对象 解决简单问题可以使用面向过程 解决复杂问题:宏观上使用面向对象把握,微观处理上仍然是面向过程. 面向对象具有三大特征:封装性.继承性和多态性,而面向过程没有继承性和多态性,并且面向 ...

最新文章

  1. android sqlite自定义函数,Android中自定义一个View的方法详解
  2. 出一个简单的Spring框架入门教程
  3. V8 Design Elements(翻译)
  4. hdu 2441(ACM(Array Complicated Manipulation))
  5. Socket和ServerSocket
  6. 仿真器和模拟器的区别是什么?
  7. 虚拟串口 服务器,ZNetCManager
  8. matlab 万年历,转 计算万年历的Matlab程序
  9. 解决在嵌入式平台上无法进行字符编码的问题
  10. java 局域网广播_java UDP实现局域网广播 | 学步园
  11. 杨永强“兑”现承诺 乐视云发力VaaS
  12. 易基因|干货:m6A RNA甲基化MeRIP-seq测序分析实验全流程解析
  13. OC_AddressBook_通讯录
  14. rtx服务器限制文件传输,rtx 服务器 文件传输 配置
  15. MATLAB写入文件的操作
  16. Jieba分词并去停用词
  17. CPU信息查询与CPU测试方法总结
  18. 中国企业软件公司的转型之路
  19. Python函数和装饰器
  20. jacobWord案例

热门文章

  1. 211上海大学,计算机考研全部改为408!
  2. UE4关卡切换Loading界面
  3. 银行接口Socket传输XML
  4. exit(0)与exit(1)、exit(-1)、return区别
  5. 第一座月球核电站明年问世
  6. Java中char类型数组打印数组名输出结果不是地址值
  7. 1.代码审计大致规则
  8. 中科院考研经历⑧--考研期间推免事宜小结
  9. 在线支付系列【7】微信支付接入指引
  10. Unity教程||Unity添加中文字体||Unity知识记录--制作UI粒子特效