系列文章目录
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
提示:这里可以添加本文要记录的大概内容:
提示:以下是本篇文章正文内容,下面案例可供参考
一、面向对象是什么?
●概念:面向对象是解决问题的一种方式,是一种编程思想,以分类的思想对整理事务进行分析,简称OOP,类是一个抽象概念,是一个模板,要根据类实例化出具体的对象,让具体对象去完成功能
▶比如定义一个动物类,再具体创造一个实例化对象
如下是动物类
public class Animals{
/*
成员变量,属性
可以不给成员变量赋值,默认的构造方法会默认赋值
对象被回收,则变量销毁
局部变量:
如果不赋值,就不默认赋值
当方法结束后,变量自动销毁
形参也为局部变量
*/
//成员属性
String name;
String color;
double age;
//成员方法,成员实现的行为
public void eat(){
System.out.println("动物能吃饭");
}
public void paly(){
System.out.println("动物能玩耍");
}
}
下面是狗类
public class AnimalsTest {
/*
由类模板创建具体对象
在内存中创建具体存在的对象
创建对象 -->
Animals dog 是构建一个Animals类型的引用变量
右边Animals 是构造以Animals为模板在计算机中真是存在的一个对象
new(关键字)+类的构造方法(构造方法名字与类名字相同)
Animals dog = new Animals();
Animals是声明Animals类对象,"="是将内存中有的对象与实际变量关联起来
*/
public static void main(String[] args) {
Animals dog = new Animals();
dog.name = "小花";
dog.color = "黄白";
dog.age = 1;
dog.eat();
dog.paly();
}
}
1.如何创建对象
●使用 类名 + 引用变量名 = new(关键字) + 类名
接下来以上面的Aniamal为例子
首先 Animals dog 是构建一个Animals类型的引用变量,右边Animals 是构造以Animals为模板在计 算机中真是存在的一个对象,然后new(关键字)是构造对象的关键字,"="是将内存中有的对象与实际中你定义的引用变量关联起来
## 1.如何使用对象
● 使用引用变量名.属性或者引用变量名.方法来使用功能
## 2.类与对象之间的关系
类是一个抽象概念,是某种事物的集合,事物集合的模板;对象就是根据类实例化的一个个真实存在的对象
就好像汽车图纸是类,而每一辆真真确实存在的车是对象
调用对象时候是通过引用变量来获取对象地址来调用,并不是直接调用
---
二、构造方法
1.什么是构造方法
●为成员变量初始化赋值的特殊方法,无返回值且不用void修饰,而且名字与类名相同
代码如下(示例):
//无参构造方法
public Animals(){
System.out.println("无参的构造方法")
}
//有参构造方法
public Animals(String n,String c){
name = n;
color = c;
}
第一个是无参构造方法,类中默认是有一个无参的构造方法,一个类中可以有多个构造方法,第二个是有参的构造方法,在使用时候必须传入参数;
2.如何使用构造方法
- 使用无参构造方法
代码如下(示例):
以下为创建一个对象后默认调用了无参的构造方法.分别为name color age赋默认值
String 类型的默认值是null,int类型的默认值是0
代码如下
打印结果:
**由结果知创建对象的时候就先调用无参的构造方法赋初值**
- 使用有参的构造方法
代码如下:在类中要定义无参的构造方法
创建对象时要传入参数
打印结果
由于Animal类有三个属性name,color,age,咱们用有参的构造方法为name与color赋了值,但是age仍然没有赋值,所以此时会用无参再次赋值未赋值的属性
3.构造方法的重载
用不同构造方法来给成员变量赋初值,可以通过构造方法参数数量,参数顺序,参数类型来分别使用构造方法
代码如下
如下创建一个Animal类
public class Animals{
/*
成员变量,属性
可以不给成员变量赋值,默认的构造方法会默认赋值
对象被回收,则变量销毁
局部变量:
如果不赋值,就不默认赋值
当方法结束后,变量自动销毁
形参也为局部变量
*/
String name;
String color;
double age;
//构造方法
//构造方法的重载
//--->
//参数的个数区分
public Animals(){
System.out.println("无参的构造方法");
}
//两个参数的构造方法
public Animals(String n,String c){
name = n;
color = c;
}
//三个参数的构造方法
public Animals(String n,String c,int a){
name = n;
age = a;
color = c;
}
//参数个数不一样
public Animals(String n,int a,String c){
name = n;
age = a;
color = c;
}
//参数类型不一样
public Animals(int n,int c){
System.out.println("通过类型区分");
}
//成员方法,成员实现的行为
public void eat(){
System.out.println("动物能吃饭");
}
public void paly(){
System.out.println("动物能玩耍");
}
}
创建具体对象
public class AnimalsTest {
/*
由类模板创建具体对象
在内存中创建具体存在的对象
创建对象 -->
Animals dog 是构建一个Animals类型的引用变量
右边Animals 是构造以Animals为模板在计算机中真是存在的一个对象
new(关键字)+类的构造方法(构造方法名字与类名字相同)
Animals dog = new Animals();
Animals是声明Animals类对象,"="是将内存中有的对象与实际变量关联起来
*/
public static void main(String[] args) {
Animals dog1 = new Animals();
System.out.println(dog1.name);
System.out.println(dog1.color);
System.out.println(dog1.age);
Animals dog = new Animals();
dog.name = "小花";
dog.color = "黄白";
dog.age = 1;
dog.eat();
dog.paly();;
//调取2个参数的构造方法
Animals cat = new Animals("阿猫","白色");
cat.eat();
cat.paly();
//调取3个参数的构造方法
Animals tiger = new Animals("老虎","彩色",5);//传入三个参数
System.out.println(tiger.toString());
//通过参数区分
Animals rabbit = new Animals("兔子",5,"黄色");//传入两个参数
}
}
在使用 new + 类名() 创造对象时候,在()里要传入与要使用的构造方法一致
注意 !!要严格控制参数数量,顺序,类型,不然会导致构造方法使用的混乱
注意!! 构造方法的重载与返回值无关
代码示例
public Animals(String n,String c,int a){
name = n;
age = a;
color = c;
}
public void Animals(String n,String c,int a){//这样就是写了一个成员方法,并不和上面的构造方法重载
name = n;
age = a;
color = c;
}
总结
以上就是今天要讲的内容,本文仅仅简单介绍了类与对象的概念,使用,以及如何定义类,定义对象,还有如何调用构造方法,构造方法重载。