一、构造方法
1.作用
可以给对象的属性进行初始化.
2.格式
1)方法名与类名相同(包括字母的大小写)
2)没有返回值类型和void
3)没有具体的返回值
3.构造方法的重载
构造方法也可以重载,就是说可以有相同名字的方法,用参数列表来区分它们.
构造方法分为有参构造方法和无参构造方法.有参方法是用来给对象属性复制用的.
无参构造方法是在不需要给对象属性赋值的时候,来奖励对象调用方法用.如果没有
自己做出构造方法的话,系统会自动给我们一个无参方法来用,但是如果我们做了一
个有参的构造方法,系统将不会给我们构造方法,如果还需要使用无参方法,我们只
能自己在写出无参构造方法.
4.成员方法
成员方法可以根据返回值的不同而设立方法,如返回值是void或者有明确返回值的方法.还可以根据形式参数分为有参方法和无参方法.
二、static关键字
1.特点
static关键字随着类的加载而加载,优先于对象的存在,被类的所有对象共享.如果某个成员变量是被所有对象共享的,那么他就iuyinggai设定为静态的.比如我们班同学的国籍.
它可以通过类名调用,也可以用对象名调用.推荐使用类名调用,因为对象会开辟新的空间,占用内存,用完后会产生垃圾.
2.注意事项
在静态的方法中,没有this关键字,因为静态是随着类的加载而加载的,this是随着对象的创建而存在的,而静态方法是在对象之前存在的.
静态方法只能访问静态的成员变量或静态的成员方法.非静态方法中,成员变量可以是静态的也可以使非静态的.成员方法可以使静态的成员方法,也可以是非晶态的成员方法.
3.静态变量和成员变量的区别
所属不同:静态变量属于类,所以也被称为类变量.成员变量属于对象,所以也称为实例变量.
内存中位置不同:静态比昂两存储于方法区的静态区.而成员变量存在堆内存中.
内存中的出现时间不同:静态变量随着类的加载而加载,随着对象的消失而消失.
调用的不同:静态变量可以通过类名调用,也可以通过对象名调用.成员变量只能通过对象名调用.
1.作用
可以给对象的属性进行初始化.
2.格式
1)方法名与类名相同(包括字母的大小写)
2)没有返回值类型和void
3)没有具体的返回值
3.构造方法的重载
构造方法也可以重载,就是说可以有相同名字的方法,用参数列表来区分它们.
构造方法分为有参构造方法和无参构造方法.有参方法是用来给对象属性复制用的.
无参构造方法是在不需要给对象属性赋值的时候,来奖励对象调用方法用.如果没有
自己做出构造方法的话,系统会自动给我们一个无参方法来用,但是如果我们做了一
个有参的构造方法,系统将不会给我们构造方法,如果还需要使用无参方法,我们只
能自己在写出无参构造方法.
class Demo { public static void main(String[] args) { Person p1 = new Person(); p1.setName("张三"); p1.setAge(18); System.out.println(p1.getName() + "," + p1.getAge()); Person p2 = new Person("李四",24); System.out.println(p2.getName() + "," + p2.getAge()); } } class Person { private String name; private int age; public Person() { //空参的构造方法 System.out.println("空参构造"); } public Person(String name,int age) { //有参构造 this.name = name; this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } }
4.成员方法
成员方法可以根据返回值的不同而设立方法,如返回值是void或者有明确返回值的方法.还可以根据形式参数分为有参方法和无参方法.
class Demo3 { public static void main(String[] args) { Demo d = new Demo(); int sum = d.add(10,20); System.out.println(sum); d.add(10,20); } } class Demo { public int add(int a,int b) { return a + b; } }
二、static关键字
1.特点
static关键字随着类的加载而加载,优先于对象的存在,被类的所有对象共享.如果某个成员变量是被所有对象共享的,那么他就iuyinggai设定为静态的.比如我们班同学的国籍.
它可以通过类名调用,也可以用对象名调用.推荐使用类名调用,因为对象会开辟新的空间,占用内存,用完后会产生垃圾.
class Demo1_Static { public static void main(String[] args) { Person p = new Person(); p.name = "张三"; p.country = "中国"; p.speak(); } } class Person { String name; static String country; public void speak() { System.out.println(name + "," + country); } }
2.注意事项
在静态的方法中,没有this关键字,因为静态是随着类的加载而加载的,this是随着对象的创建而存在的,而静态方法是在对象之前存在的.
静态方法只能访问静态的成员变量或静态的成员方法.非静态方法中,成员变量可以是静态的也可以使非静态的.成员方法可以使静态的成员方法,也可以是非晶态的成员方法.
3.静态变量和成员变量的区别
所属不同:静态变量属于类,所以也被称为类变量.成员变量属于对象,所以也称为实例变量.
内存中位置不同:静态比昂两存储于方法区的静态区.而成员变量存在堆内存中.
内存中的出现时间不同:静态变量随着类的加载而加载,随着对象的消失而消失.
调用的不同:静态变量可以通过类名调用,也可以通过对象名调用.成员变量只能通过对象名调用.
class Demo2_Static { public static void main(String[] args) { Demo.print2(); } } class Demo { int num1 = 10; static int num2 = 20; public void print1() { System.out.println(this.num1); System.out.println(num2); } public static void print2() { System.out.println(num2); } }