面向对象浅见
面向对象的概念
面向对象的方法主要是把事物给对象化,包括其属性和行为。面向对象编程更贴近实际生活的思想。总体来说面向对象的底层还是面向过程,面向过程抽象成类,然后封装,方便使用就是面向对象,(万物皆对象)
面向过程和面向对象的区别
他们都是解决问题的思想。
面向过程:通过过程来解决问题,没有对象的概念,只是如何解决这个问题的过程。
面向对象:通过对象来解决问题,需要先构建对象(赋予解决问题的能力),然后指挥对象去解决问题。
对象
万事万物皆对象,对象就是一个具体存在的能够解决问题的个体;
如何区别:通过对象的属性和行为。
属性是记录对象的特征的。
行为是对象解决问题的能力。
类
类是对象的抽象,对象是类的实例化,类是一个模板,通过类来构建对象,在类里面定义对象的属性和行为;
面向对象实战思路
遇到问题,分析问题
通过分析,抽象成类
通过类构建对象
通过对象,解决问题。
类的创建
类的结构
[修饰符public] class 类名{
//属性:成员变量
[修饰符public] 数据类型 属性名[=初始值];
//方法:成员方法
[修饰符public static] 返回值类型void 方法名([参数]){
//方法体:解决问题的过程
}
}
具体实例
这是一个简单的学生成绩信息,有属性,方法和构造方法
public class Student {
private String name;
privateint xuehao;
privatedouble score;
privateStudent() {
}
public void score(String name,int xuehao,double score) {
System.out.println("学生成绩信息:姓名"+name+",学号:"+xuehao+",成绩:"+score);
}
}
创建对象
类名 对象名=new 类名();
public static void main(String[] args) {
Student s=new Student();
}
使用对象
对象.属性名;
对象.方法名();
案例
s.name="xiaohua";
s.xuehao=123;
s.score=90;
s.score();
创建对象的过程
OOP实例:求长方体的体积
定义一个长方体类
public class changfangti {
public int lenght;
public int width;
public int height;
public changfangxing(int c,int k,int g) {
lenght=c;
width=k;
height=g;
}
public void tiji() {
System.out.println("长方体的体积为:"+lenght*width*height+"cm");
}
}
主函数调用
changfangti gg=new changfangti(1, 2, 3);
gg.tiji();
构造器的定义
1.创建对象
new 类名();
这里调用的是构造器;
2.构造器
构造对象的过程
定义: 【修饰符】 构造器名称(参数){ 方法体}
例
//构造器:构造方法
public Circle() {
//构造对象之后,用于初始化这个对象的属性操作
r=4;
}
3.使用构造器
new 构造器名字();
执行过程:首先通过类构建一个对象,然后执行方法题完成该对象的属性初始化。
4.缺省构造器
如果类中没有定义构造器,系统会在编译时自动创建一个无参构造器,即缺省构造器:public 类名(){}
但是如果你自己定义了构造器,系统则不会帮你生成缺省构造器。
成员变量
1.变量
变量分为两种,一种是局部变量,另一种是成员变量,也就是全局变量;
成员变量:定义在类中,对象的属性;
局部变量:定义在方法体中的变量。
2.成员变量和局部变量的区别
第一,声明位置不同:成员变量生命在类中,方法体外,局部变量定义在方法体内;
第二,修饰符不同:成员变量前可以用各种修饰符修饰,局部变量只能用参数类型来修饰;
第三,作用范围不同:成员变量可以作用于所有方法,局部变量只能存在于方法体内部;
第四,缺省值不同:成员变量有缺省值,局部变量没有缺省值。
3.成员变量缺省值
整数类型,0
浮点类型,0.0
char类型,空白字符
布尔类型,false
引用类型,null
4.变量重名问题
变量的作用域:一个变量只能在声明它的最小语句组中使用,超出这个语句组就不能使用。
重名规则:
一个类中,所有的成员变量之间,不可以重名。
一个方法中,所有的局部变量之间,不可以重名。
成员变量可以和局部变量(参数)重名,方法内直接使用的是局部变量。
一个方法中,局部变量和参数不能重名。
本文地址:https://blog.csdn.net/qq_43803695/article/details/110825855
上一篇: 了解OpenStak基础架构