package com.web;
public class Test30 {
public static void main(String[] args) {
Cat cat1 = new Cat();
cat1.name = "kitty";
System.out.println("cat1.name = " + cat1.name);
//System.out.println(this.name);错误写法,this只能在Cat类自己出现
cat1.hello();
System.out.println("======================");
Cat cat2 = new Cat("ドラえもん");
System.out.println("cat2.name = " + cat2.name);
System.out.println("======================");
Cat cat3 = new Cat("mimi", 2);
System.out.println("cat3.name = " + cat3.name);
//System.out.println(cat3.age);错误写法,拿不到age,是private,用getAge去拿
System.out.println("cat3.getAge = " + cat3.getAge());
System.out.println("Cat.weight" + Cat.weight);
//System.out.println(cat3.weight);必须类名调用
//System.out.println(Cat.call1());无法调用
//System.out.println(cat3.call2());无法调用
}
}
class Cat {
protected String name;
private int age;
//被public static修饰的属性除了可以被静态方法和非静态调用之外,还可以直接被类名和外部创建的对象调用。
public static int weight = 10;
//被private static修饰的属性可以被静态方法调用,但是只能被本类中的方法(可以是非静态的)调用,在外部创建这个类的对象或者直接使用这个类访问都是非法的。
private static int height = 20;
//静态调用
public static void call1() {
System.out.println(height);
}
//非静态调用
public void call2() {
System.out.println(height);
}
Cat cat = new Cat();//写在类中,方法外的对象
public void call3() {
Cat.call1();//静态调用
//cat.call1();必须类名调用
cat.call2();//非静态调用
cat.call3();//递归调用
}
public int getAge() {
return age;
}
public void hello() {
System.out.println("hello" + this.name);
}
public Cat() {
}
public Cat(String name) {
this.name = name;
}
public Cat(String name, int age) {
this.name = name;
this.age = age;
}
}
构造函数,public static和private static属性区别
猜你喜欢
转载自blog.csdn.net/djydjy3333/article/details/121435403
今日推荐
周排行