JAVA面向对象—方法
本文参考内容: 牛客网,此内容仅为本人的学习知识总结。
再谈方法的参数
基本类型参数
引用类型参数
实例:
Driver.java:
package nowcoder3.part03;
public class Driver {
public void earn(double money){
money /= 2;
System.out.println("收入:"+money+"元!");
}
public void refit(Car car){
car.color="蓝色";
}
}
Car.java:
package nowcoder3.part03;
public class Car {
String color;
}
Game:java:
package nowcoder3.part03;
import nowcoder3.part03.Driver;
public class Game {
public static void main(String[] args) {
Driver d= new Driver();
double money = 8000.0;
d.earn(money);
System.out.println("发放:"+money+"元!");
Car c = new Car();
c.color ="红色";
d.refit(c);
System.out.println("颜色:"+c.color);
}
}
运行结果:
再谈方法的返回值
查看运行过程可通过如下方法:
若是需要查看return值,如下:
构造方法
什么是构造方法
new关键字后面调用的方法就是构造方法,也叫构造器;
构造方法用于创建对象,也可以用于初始化对象中的成员变量;
默认的构造方法
若没有显示的给一个类定义构造方法,
则编译时编译器会为该类添加一个默认的构造方法。(没有参数)
如何定义构造方法
语法:修饰符 方法名(参数列表){…}
注意:
1.方法名必须与类名相同;
2.构造方法不能有返回值;
3.当显示定义构造方法时,编译器将不再生成默认的构造方法。
默认构造方法无参数,所以使用时会每一个对象.成员变量;
当你定义一个有参数的构造函数,创建对象时也需要输入参数;
实列:
Truck.java:
package nowcoder3.part04;
public class Truck {
String brand;
String color;
int capacity;//容量
//默认构造方法 这是没有参数的
// public Truck(){
// }
//定义的有参数的构造方法
public Truck(String b,String c,int p){
brand = b;
color = c;
capacity = p;
}
public void run(){
System.out.println(color+brand+"载重"+capacity+"吨!");
}
}
Game.java:
package nowcoder3.part04;
/*
* 构造方法
* */
public class Game {
public static void main(String[] args) {
Truck t1 = new Truck("宝马","黑色",666);
t1.run();
Truck t2 = new Truck("大奔","绿色",999);
t2.run();
}
}
注意区分与之前的代码的不同之处!!!
运行结果:
也可以是无参数的构造器,在方法中初始化成员变量: 如图:
package nowcoder3.part04;
public class Car {
long engineNo;
public void Car(){
//生成发动机编号,这个编号是时间毫秒数
//这个时间是1970年1月1日到目前为止的时间毫秒数
engineNo = System.currentTimeMillis();
}
public void getTime(){
System.out.println("发动机编号:"+engineNo);
}
}
成员方法的重载
实例:
Bus.java:
package nowcoder3.part05;
public class Bus {
public void run(){
System.out.println("公交车慢慢的跑");
}
}
Truck.java:
package nowcoder3.part05;
public class Truck {
public void run(){
System.out.println("大卡车呼呼的跑");
}
}
Driver.java:
package nowcoder3.part05;
public class Driver {
//成员方法的重载:方法名相同,参数列表不同
void drive(Bus bus){
bus.run();
}
void drive(Truck truck){
truck.run();
}
}
Game.java:
package nowcoder3.part05;
/*
* 成员方法的重载
* */
public class Game {
public static void main(String[] args) {
Driver d= new Driver();
Bus b1 = new Bus();
d.drive(b1);
Truck t1 = new Truck();
d.drive(t1);
}
}
运行结果:
构造方法重载
实例:
Car.java:
package nowcoder3.part06;
public class Car {
String brand;
String color;
int maxSpeed;
//构造方法的重载
public Car(String b){
brand = b;
}
public Car(String b,int s){
brand = b;
maxSpeed = s;
}
public Car(String b,String c,int s){
brand = b;
color = c;
maxSpeed = s;
}
void run(){
System.out.println("品牌:"+brand);
System.out.println("颜色:"+color);
System.out.println("时速:"+maxSpeed);
}
}
Came.java:
package nowcoder3.part06;
/*
* 构造方法的重载
* */
public class Game {
public static void main(String[] args) {
Car c1 =new Car("宝马");
c1.run();
Car c2 =new Car("宝马",666);
c2.run();
Car c3 =new Car("宝马","黑色",666);
c3.run();
}
}
运行结果:
总结
- 静态方法
- 成员方法
- 构造方法