面向对象
面向过程和面向对象
面向过程:全称为procedure oriented programming 缩写为 POP
面向过程顾名思义 就是面向问题的流程,分析出解决问题的步骤,然后将步骤逐步实现.
面向对象:全称为object oriented programming 缩写 OOP
面向对象是以分类的方式进行解决问题,先对对象整体进行分类,再根据不同的类进行处理
面向对象和面向过程的关系
他们就好像鱼和水的一样,面对对象关注于宏观事物的关系,而面向过程更关注于细节部分,面对对象如果离开面向过程,就无法真正的实现.
java类
类
类是一个模板,它描述一类事物的属性和行为的集合,是表示一个客观世界某类群体的一些基本特征抽象
类的结构
成员变量:事物属性的描述
方法:事物的行为;(可以做的事情)
构造方法:用于创建对象;
内部类: 即在类体中声明的类。
块:一段没有名称的代码块
1发现类
[访问权限修饰符 public] [修饰符,abstract final] class(修饰类) 类名{
变量:事物属性的描述;
方法:事物的行为;(可以做的事情)
构造方法:用于创建对象;
内部类: 即在类体中声明的类。
块:一段没有名称的代码块}
public class Car{
}
2.类的属性
成员变量:定义在类中
[访问权限修饰符] [修饰符] 数据类型 变量名 = [值]
String name;
String color;
float price;
3.类的方法
方法声明格式为:
[访问权限修饰符] [修饰符]/ void start(){
System.out.println(“汽车启动”);
[return 返回值;]
}
}
public void start(){//成员方法
System.out.println(name+"汽车启动");
}
java对象
对象:对象是类的一个实例,是以类为模板在内存中创建的实际存在的实例。
对象的创建和使用
Car x1 = new Car();
Car x1:使用Car类作为类型声明一个变量x1.
new Car():使用new + Car类构造方法创建对象.
= :将右边创建的对象地址 赋给 左边的x1变量
使用x1变量访问对象中的成员变量和成员方法.
同一类的每个对象有不同的成员变量存储空间。
同一类的每个对象共享该类的方法。
类和对象
总结类和对象
类是一类事物的抽象概念,是一个模型.
对象是由这个模型所创造的一个个具体存在的,实实在在存在的实例.
所以创建对象的过程也叫实例化对象.
现实生活中先有对象后有类,而编程时先设计类后创建对象.
变量分类
成员变量:
成员变量是定义在类中,方法体之外的变量。
成员变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)。
在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。
成员变量在创建对象的时候会从类中复制一份到对象中。
成员变量可以被类中方法、构造方法和特定类的语句块访问。
成员变量的作用范围为整个类体。
public class CAR {
String name;
String color;
float price;//成员变量
}
局部变量:
在方法、构造方法或者语句块中定义的变量被称为局部变量。
局部变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)。
局部变量在使用前必须初始化赋值。
变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
public CAR() {
int k;//局部变量
System.out.println();
方法分类
成员方法
:成员方法是定义在类中。这种方法在创建对象的时候创建。
语法格式:
修饰符 返回值类型 方法名 ( 参数列表) {
方法体语句;
[return 返回值]
}
public class CAR {
String name;
String color;
float price;//成员变量
}
构造方法
:用来创建对象的方法
构造方法是定义在 Java 类中的一个用来创建对象的方法。
构造方法名与类名相同,且没有返回值,且不需要使用void修饰
使用 new + 构造方法 创建一个新的对象。在创建一个对象的时候,至少要调用一个构造方法。
类中默认有一个无参的构造方法
public Car(){
System.out.println("无参的构造方法创建一个car对象");
}
public static void main(String[] args) {
Car car=new Car();//创建对象
}
我们还可以在类中定义有参数的构造方法,一旦定义,默认无参的就会失效.这个时候就需要自己创建一个无参的构造方法
有参的构造方法,在创建对象的同时,还可以为对象中的属性赋值
public Car(String n){
name = n;
System.out.println("有参数的构造方法创建一个car对象");
}
public Car(String n,String c){
name=n;
color=c;
System.out.println("有2个参数的构造方法创建一个car对象");
}
public static void main(String[] args) {
CAR dz=new CAR("大众");
CAR ft=new CAR("丰田","绿色");
}
方法的重载
方法的重载是指同一个类中具有相同的名字,但参数不同的多个方法。
方法的重载方法名相同时,如何区分方法通过参数区分
1.参数个数
2.参数类型
3.参数顺序
调用时,会根据不同的参数表选择对应的方法。
public CAR(float j,String l){
}
public CAR(String l,float j){
}
public CAR(String l,float j,boolean k){
}
//方法重载实例
new CAR(0,"鹅鹅鹅");
new CAR("鹅鹅鹅",0);
new CAR("鹅鹅鹅",0,false);