面向过程和面向对象的设计思想、java类、Java类的定义、java对象、对象的创建和使用、类和对象、变量分类、方法分类、构造方法、方法的重载
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对象、对象的创建和使用、类和对象、变量分类、方法分类、构造方法、方法的重载相关推荐
- 面向过程和面向对象的编程思想 复习原型 构造函数和实例对象和原型对象之间的关系
体会面向过程和面向对象的编程思想 <!DOCTYPE html> <html lang="en"> <head><meta charset ...
- 从面向过程到面向对象编程的思想转变
项目的需求,要实现一个功能:更新表中若干行的部分列数据.Are you 明白大概要实现什么功能了吗? 嗯,我知道你明白了.那就接着往下看把. 遇到这样的问题,我相信很多人首先想到的方法是直接使用upd ...
- Java 从面向过程走向面向对象的程序设计思想
什么是面向过程?面向对象? 它们都是解决问题的思路 我用一个生活的例子来区别它们: 起床,洗漱,吃饭--等这些都是生活中的事 吃饭:我们想吃饭之前要做饭,饭菜可以是自己做,或者爸妈做,也可以下馆子 面 ...
- 面向过程与面向对象的程序设计思想
面向过程:"面向过程"是一种以事件为中心的编程思想.分析出解决问题所需要的步骤,然后用函数把这些步骤一步步实现,使用的时候一个个一次调用就行了. 面向对象:"面向对象&q ...
- java面向过程和面向对象
面向过程(Procedure Oriented):说的是功能的行为 面向对象(Object Oriented,简称OO):说的是功能的对象 面向过程理解: 当学习java的时候先了解java语言优良的 ...
- 面向过程与面向对象——编程思想的演变
编程语言从无到有,据维基百科统计,至今为止有600多种.如此众多语言,需要逐个学习吗?实际上编程语言都是相通的,编程语言只需要精通一门即可,其他都能融会贯通.比如Java与C++就差不多,Java和C ...
- java面向过程编程怎么写_从面向过程到面向对象,我的编程之路
也许现在新一代的程序员一开始涉足的就是c++,C#,Java这类面向对象的语言,如果这样,这篇文章可能得不到他们的认同. 这里,我只想写写我从面向过程到面向对象开发成长中的一些感想而已. 我最初学习的 ...
- JAVA入门级教学之(面向过程和面向对象的区别)
目录 JAVA入门级教学之(面向过程和面向对象的区别) 面向过程和面向对象的区别: -面向过程: -面向对象: -发展历程: -生命周期中包括: -什么是类: -什么是对象: -软件开发的过程: -重 ...
- java知识点7——面向过程和面向对象、面向对象的内存分析、构造方法
面向过程和面向对象 解决简单问题可以使用面向过程 解决复杂问题:宏观上使用面向对象把握,微观处理上仍然是面向过程. 面向对象具有三大特征:封装性.继承性和多态性,而面向过程没有继承性和多态性,并且面向 ...
最新文章
- android sqlite自定义函数,Android中自定义一个View的方法详解
- 出一个简单的Spring框架入门教程
- V8 Design Elements(翻译)
- hdu 2441(ACM(Array Complicated Manipulation))
- Socket和ServerSocket
- 仿真器和模拟器的区别是什么?
- 虚拟串口 服务器,ZNetCManager
- matlab 万年历,转 计算万年历的Matlab程序
- 解决在嵌入式平台上无法进行字符编码的问题
- java 局域网广播_java UDP实现局域网广播 | 学步园
- 杨永强“兑”现承诺 乐视云发力VaaS
- 易基因|干货:m6A RNA甲基化MeRIP-seq测序分析实验全流程解析
- OC_AddressBook_通讯录
- rtx服务器限制文件传输,rtx 服务器 文件传输 配置
- MATLAB写入文件的操作
- Jieba分词并去停用词
- CPU信息查询与CPU测试方法总结
- 中国企业软件公司的转型之路
- Python函数和装饰器
- jacobWord案例