[类 & 对象]
1、类:具有一系列相同属性(特征)和方法(行为)的个体的集合,称为类。
类是一个抽象的概念,只能说类具有哪些属性,而不能直接对属性进行赋值。
例如:人类有身高的属性,但是不能说人类的身高是180

2、对象:从类中拿出具有具体属性值的个体,称为对象。
对象是从类中拿出的一个具体的个体,需要对属性进行具体的赋值。
例如:人类有身高的属性,那么张三是人类中的一个个体,就可以说张三的
身高180, 此时张三就是人类的一个对象。

3、类与对象的关系:
类是对象的抽象化,对象是类的具体化。
类是对象的描述,对象是类的个体(实例)。
程序中由类产生对象。
面向对象的三大特征:继承、封装、多态。

[类的创建]
1、声明一个类:[访问控制符] class 类名{}
注意类名的命名规范
public class Person {}

2、声明一个属性:[访问控制符] 属性类型 属性名;
public String name;
public int age;

3、声明一个方法:[访问控制符] 返回值类型 方法名(){}
如果没有返回类型,用void代替。
public void say(){
System.out.println(“我是人類,我會說話。”);
}

4、 构造函数:是类中的一个特殊的方法
①构造函数与类同名
②构造函数没有返回类型,连void也没有!
public Person(){}
public Person(String name,int age){}
[注意]
① 如果没有手动写构造函数,则系统会默认提供一个空参构造
如果一旦手写构造函数,则系统不再提供空参构造

② 构造函数无需手动调用,而是在实例化对象时,自动调用。

③ 构造函数的作用:在实例化对象时,给类的属性赋默认值

④ 习惯上写一个空参构造(可以创建一个空对象,无需写参数)和全参构造。

[使用类和对象的步骤]
① 声明一个类
public class Person {
public String name=”张三”;//属性
public int age=12; //方法

}

② 在需要调用类的main方法中,使用new关键字拿到对象(对象的实例化)
Person p=new Person();

③ 使用对象名.方法名()或对象名.属性名,可以调用类中的属性和方法
p.say(); //调用方法
System.out.println(p.name);//调用属性

[方法的返回值]
① 如果方法有返回值,可以使用return返回结构
② 如果方法没有返回值,需要设置返回值为void,而且方法中必须没有return
③ 有返回值的方法,调用时不一定接收返回值。
④ 没有返回值的方法,调用时一定不能接收返回值

[方法的调用]
① 声明的方法,只有在调用的时候才能执行方法体中的代码
②方法的调用:
>>>在本类的其他方法中调用,使用 方法名(); 或者使用 this.方法名();
public void eat(){
System.out.println(“调用eat方法”);
this.say();
}

>>>调用其他类中的方法,首先应该实例化对象,再使用 对象名.方法名();调用
Demo02_Method dm=new Demo02_Method();
dm.say();

[方法的参数]
① 声明方法时:可以在()中设置调用方法时需要的传入的参数列表,多个参数之间用逗号分隔;
public void eat(String food,int count){}

声明方法时的参数列表,称为形参列表;

② 调用方法时传入的参数类型必须与形参类型一一对应。
dm.eat(“鸡蛋”,3);

调用方法时的参数列表,称为实参列表;

[成员变量与局部变量]
① 成员变量:写在方法体外面,直接在类中声明的变量
成员变量在整个类中可以使用
② 局部变量:在方法体里面声明的变量
局部变量只在当前方法体中有效,方法的形参列表,都属于局部变量。

③ 成员变量与局部变量的区别:
⑴作用域不同: 成员变量在整个类中可以使用,局部变量只在当前方法体中有效;
⑵初始值不同:java中,成员变量会默认赋初始值,局部变量没有默认初始值
⑶ 优先级不同:当成员变量与局部变量重名时,在方法中优先使用局部变量
如果需要使用成员变量则必须用 this.成员变量;

[类的使用原则]

一个完整的程序将分为三个部分,基本数据,对数据的各种操作,数据的测试。所以完整的java程序包含三种类:

数据类:类中只包含属性以及构造方法;

数据操作类:无属性及构造方法,只有自己写的各种对数据进行操作的各种方法。

测试类:main方法的所在类,在里面进行类的实例化,根据不同的需求,调用不同的对象方法,实现面向对象。

版权声明:本文为lyz-999原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lyz-999/p/8688595.html