面向过程编程是JAVA和Python一个通性叭~最大的优势就是封装函数有利于后续调用,主要是程序复用方面的极大优势~可能过程编程会更思路清晰,但是编程嘛~讲究一个代码效用😉不能目光短浅对不对💡
一、面向过程 & 面向对象
面向过程思想:
步骤清晰简单,第一步做什么,第二步做什么
面向过程适合处理一下较为简单的问题
线性思维
面向对象思想:
物以类聚,分类的思维模式,将一个大问题分类为每个小问题,最后再对某个分类下的细节进行面向过程的思索。
适合处理复杂的问题,适合处理多人协作的问题
从宏观上我们使用面向对象的思想,再具体到微观操作,用面向过程的思路去处理
二、面向对象
面向对象编程—Object-Oriented Programming,OOP
本质就是:以类的方式组织代码,以对象的组织(封装)数据。
三大特性:
封装
继承
多态
三、类与对象的关系
类是一种抽象的数据类型,它是对某一类事物整体描述、定义,但是并不能代表某一个具体的事物
对象是抽象概念的具体实例
四、创建与初始化对象
使用new关键字创建对象
五、构造器
类中的构造器也称为构造方法,是在进行创建对象的时候必须调用的。有以下两个特点:
必须和类的名字相同
必须没有返回类型,也不能写void
idea生成构造器的快捷键alt+insert
一个类可以包含以下类型变量:
局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
类变量:类变量也声明在类中,方法体之外,但必须声明为 static 类型。
一个类可以拥有多个方法,在上面的例子中:eat()、run()、sleep() 和 name() 都是 Dog 类的方法。
构造方法
每个类都有构造方法。如果没有显式地为类定义构造方法,Java 编译器将会为该类提供一个默认构造方法。
在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。
下面是一个构造方法示例:
public class Puppy{
public Puppy(){
}
public Puppy(String name){
// 这个构造器仅有一个参数:name
}
}
创建对象
对象是根据类创建的。在Java中,使用关键字 new 来创建一个新的对象。创建对象需要以下三步:
声明:声明一个对象,包括对象名称和对象类型。
实例化:使用关键字 new 来创建一个对象。
初始化:使用 new 创建对象时,会调用构造方法初始化对象。
下面是一个创建对象的例子:
public class Puppy{
public Puppy(String name){
//这个构造器仅有一个参数:name
System.out.println("小狗的名字是 : " + name );
}
public static void main(String[] args){
// 下面的语句将创建一个Puppy对象
Puppy myPuppy = new Puppy( “tommy” );
}
}
编译并运行上面的程序,会打印出下面的结果:
小狗的名字是 : tommy
访问实例变量和方法
通过已创建的对象来访问成员变量和成员方法,如下所示:
/* 实例化对象 /
Object referenceVariable = new Constructor();
/ 访问类中的变量 /
referenceVariable.variableName;
/ 访问类中的方法 */
referenceVariable.methodName();
实例
下面的例子展示如何访问实例变量和调用成员方法:
public class Puppy{
int puppyAge;
public Puppy(String name){
// 这个构造器仅有一个参数:name
System.out.println("小狗的名字是 : " + name );
}
public void setAge( int age ){
puppyAge = age;
}
public int getAge( ){
System.out.println("小狗的年龄为 : " + puppyAge );
return puppyAge;
}
public static void main(String[] args){
/* 创建对象 /
Puppy myPuppy = new Puppy( “tommy” );
/ 通过方法来设定age /
myPuppy.setAge( 2 );
/ 调用另一个方法获取age */
myPuppy.getAge( );
/*你也可以像下面这样访问成员变量 */
System.out.println("变量值 : " + myPuppy.puppyAge );
}
}
参考资料:菜鸟教程🐤
------本文逻辑和排版略粗糙hh非原创内容也较多👻~后续可能会删,再重新出一版逻辑清晰滴!