构造方法不需要填写返回值,并且方法名称与类名相同,默认情况下每个类都会自带一个没有任何参数的无参构造方法
public class Person{
String name;
int age;
String sex;
Person(){
name="小明";
age=18;
sex="男";
}
}
构造方法会在new的时候自动执行:
public static void main(String[] args){
Person p=new Person();//这里的new Person()其实就是在调用无参构造方法
System.out.println(p.name);
}
我们也可以为构造方法设定参数:
public class Person(){
String name;
int age;
String sex;
Person(String name,int age,String sex){//与普通方法是一样的
this.name=name;
this.age=age;
this.sex=sex;
}
}
在我们定义一个构造方法后,会覆盖掉默认的那一个无参构造方法,除非我们手动重载一个无参构造,否则要创建这个类的对象,必须调用我们自己定义的构造方法:
public static void main(String[] args){
Person p=new Person("小小",19,"女");// 调用自己定义的带三个参数的构造方法
System.out.println(p.name);
}
静态变量和静态方法
使用static关键字来声明一个变量或一个方法为静态的,一旦被声明为静态,那么通过这个类创建的所有对象,操作的都是同一个目标。
public class Person{
String name;
int age;
String sex;
static String info;
}
public static void main(String[] args){
Person p1=new Person();
Person p2=new Person();
p1.info="hello";
System.out.println(p2.info);
}
![](https://i-blog.csdnimg.cn/blog_migrate/24003b3e6549a9cbfc708652c1f52721.png)
一般情况下,不通过具体的对象去修改和使用静态属性,而是通过这个类去使用:
Person.info="hello";
System.out.println(Person.info);
同样,可以将方法标记为静态:
static void test(){
System.out.println("我是静态的");
}
在静态方法中,无法获取成员变量的值,也无法使用‘this’关键字;但是静态方法可以访问静态变量。