文章目录
面向对象和面向过程的不同
1.面向过程
在面向过程的时候,我们需要考虑怎么去实现一个功能。
比如:你饿了,现在的你还只是个孩子,无法自己吃饭,我们现在需要解决的是怎么样让你吃到饭(父母用勺子一勺一勺的喂给你吃…)。这就是面向过程。
2.面向对象
在面向对象的时候,我们不需要去考虑怎么实现,怎么做。而直接考虑考虑谁来做,谁去做。
又比如:你饿了,现在的你长大了,能够自己解决吃饭的问题。我们需要解决的就是告诉你该吃饭了,至于你怎么吃,吃什么,用筷子还是用刀叉,需不需要人投喂,这些不再是我们考虑的问题。
类和对象
1.类
抽取出一类对象公共的部分,形成一个类。
比如,汽车就可以是一个类,汽车都有轮子,都能跑,都能载人等等,这些汽车都有的特性,就可以提取出来,形成一个汽车类。至于我的轮子是大是小,怎么跑…这些问题交由对象去解决。
2.对象
就是对类的具体化。就比如,你知道了汽车类,根据这个类,造出了具体东西。这个东西就是类的具体化。不管你造的是大黄蜂还是擎天柱,只要是通过汽车类具体化出来的,就是一个汽车对象。
创建类
1.创建一个类
格式:
修饰符 class 类名{
}
举例:
public class Car{
//创建了一个汽车类
...
}
2.类中属性
也可以叫成员变量。就是用来描述这个类的特性的变量。
格式:
修饰符 属性类型 属性名 = 默认值;//默认值没有可以不写
举例:
piblic class Car{
public String carName;//汽车品牌名
private double width;//车身宽度
public double heigth;//车身高度
}
如上,定义了一个汽车类,汽车的公有属性有:汽车品牌、车身宽度、车身高度等等…其他的属性没有一一例举。
3.类中方法
这个类实现一个该类特有的功能的方法
格式:
修饰符 返回类型 方法名(参数列表){//参数列表可以为空
实现语句...
}
举例:
piblic class Car{
public String carName;//汽车品牌名
private double width;//车身宽度
public double heigth;//车身高度
public void run(){
...
}
}
如上,汽车类里面定义了一个行驶的方法(run)
创建对象
创建对象需要使用new关键字
格式:
对象类型 对象名=new 构造器
举例:
public class test{
public ststic void main(String[] args){
Car c=new Car();
}
}
构造器
创建类的时候需要用到构造器,现在说一说什么是构造器。
构造器的作用就是用来初始化类对象的属性,构造器也叫构造方法,特点是无返回值,且名字跟类名相同。
空构造器是默认的,不用单独给出,如果实现了构造器的重载,需要再次声明空构造器、
利用断点调试可以发现执行完构造器之后,对象的属性都被初始化了:
无参构造器
无参构造器就是指没有参数的构造器,如:
public class test{
public ststic void main(String[] args){
Car c=new Car();//使用的就是无参构造器
}
}
构造器的重载
重载指的是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。同一个类中,每一个构造器的参数列表不能相同。
当我们创建好一个类,默认会有一个空的构造器,如:
里面并没有"Car()"构造器,但是我们却能直接使用。
如果我们重载了构造器,则必须添加空构造器。
验证一下:
添加空构造器:
有参构造器
构造器里面有参数列表的叫有参构造器
this
这是Java里面的一个关键字
他可以:
1.指代对象
在创建对象的时候,指代这个对象。
2.修饰属性
细心地小伙伴可能发现了,在上面的重载方法中,用到了"this",在重载构造器的时候,如果形参列表和类里的属性重名了,可以用"this"来指代类里的属性。如果不重名,则"this"可以省略。
试一试:
正常的:
3.修饰构造器
在重载构造器的过程中,可以用this来修饰构造器:
试验一下:
类对象的属性成功初始化了,说明构造器里合理使用this()指代其他构造器是合理的。
指代本类当中的方法
举例:
以后遇到其他用法再接着说。
下一篇先用这些基础知识,做一个小demo
给个赞吧,求求了