文章目录
1 什么是构造方法
什么是构造方法呢?
构造方法是一种特殊的方法,它是一个与类同名的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。
无参构造方法
当创造一个类的时候,里面会有一个默认的无参构造方法
举个栗子:
public Person(){
System.out.println("我是构造方法");
}
public static void main(String[] args){
Person a = new Person();
}
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/62549bf02deb40e7a0bdbdc1b04d7808.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rGf5Y2X5rKh5pyJ5pif5pif,size_20,color_FFFFFF,t_70,g_se,x_16)
可以得到验证 ,无参的方法是默认就有的,并且是用来创造对象时会默认调用
那什么是有参的构造方法呢?
有参,顾名思义就是里面传了参数的构造方法
举个栗子:
public class Person {
String name;
int age;
public Person(){
System.out.println("我是无参构造方法");
}
public Person(String name){
this.name = name;
System.out.println("我是有参构造"+name);
}
public static void main(String[] args){
// 无参
Person a = new Person();
// 有参
Person b = new Person("我是希希");
}
}
有参的构造方法在new对象的时候是需要传参数的
>Person b = new Person("我是希希");
这句话就是来传参数,其实这就是重载,下面我们来说下重载:
2 重载(overload)
2.1 什么是重载?
重载的定义,就是在同一个类中的方法的基础上去扩展,记住方法名字必须一样,里面的参数可以不同,个数,返回的类型也可以不同,上面的构造方法就是特殊的重载。
举个栗子:
public void say(){
System.out.println("说");
}
public void say(int a){
System.out.println(a);
}
这是一个没有返回值的方法的重载
下面是一个有返回值的方法的重载:
栗子:
public String sayyou(){
return "你";
}
public int sayyou(int b){
return b;
}
简单吧! 这就是重载
3 变量
3.1 静态变量
静态变量是属于类的,也叫类变量。
普通变量(实例变量)属于对象的,
静态变量可以通过类名访问
实例变量需要通过对象访问
public class Class02 {
/**
*@desc 变量
*
* @author wangxihao
* @email wangxh0108@163.com
**/
static int age;
String name;
public static void main(String[] args){
// 通过类名赋值
Class02.age=18;
Class02 class02 = new Class02();
System.out.println(age);
}
并且 静态变量是类共享的变量
举个栗子:
package PersonObject;
/**
*@desc 变量
*
* @author wangxihao
* @email wangxh0108@163.com
**/
public class Class02 {
static int age;
String name;
static int ticket = 100;
public void safe(){
this.ticket = ticket-1;
}
public static void main(String[] args){
Class02 class02 = new Class02();
class02.safe();
System.out.println("剩余"+ticket);
Class02 class03 = new Class02();
class03.safe();
System.out.println("剩余"+ticket);
}
}
由此可见,int的ticket是共享的,对于class02和class3是共享的。卖出来的票都会减一。
4 静态方法
静态方法是由static修饰的方法
举个栗子:
package PersonObject;
/**
*@desc 变量
*
* @author wangxihao
* @email wangxh0108@163.com
**/
public class Class02 {
public static void say02(){
System.out.println("这是静态方法");
}
public static void main(String[] args){
Class02 class02 = new Class02();
class02.say01();
}
}
4.1 非静态方法可以调用静态方法
public void say01(){
System.out.println("这不是静态方法");
say02();
}
public static void say02(){
System.out.println("这是静态方法");
}
//也可以调用静态变量 普通方法都可以调
public void say01(){
System.out.println("这不是静态方法");
ticket=50;
name="nihao";
say02();
}
public static void say02(){
System.out.println("这是静态方法");
ticket=20;
// say01();
// name:
}
4.2 静态方法没办法调用非静态方法
对于变量的调用
4.3总结三句话
非静态的方法对于比变量都可以调,对于方法也都可以调用。
静态方法只能调用静态变量和静态方法