面向对象的编程入门

类的属性的默认值问题


    在java中,如果定义类的使用,存在属性,但是没有给属性赋值, java会给定默认值。    
    基本数据类型的默认值:
        整型:0
        浮点型:0.0
        char:' '
        boolean:false
        对象:null

重写toString()

该方法在打印对象的时候,会自动使用toString()方法,需要使用自定义的需重写Java提供的toString()

public  String toString() {
		return " Master [name ="+ name +" age ="+ age +" gender ="+ gender +" address =" + address+" dog= "+dog+"]";
	}

}


    类的初始化    -- 构造方法

构造方法:
    访问修饰符 类名称() {
    
    }

    在java类中,如果没有自己定义构造函数,系统(JVM)会自动生成一个无参的构造,
    方便我们构建一个属性都为默认值的对象。
    但是当我们定义了一个构造函数之后,系统(JVM)将不再自动生成一个无参的构造,
    如果需要这个无参,需要自己定义。

public class Master {
	public String name;
	public int age;
	public String gender;
	public String address;
	public Dog[]  dog;
	public Master(String name, int age, String gender, String address,Dog[] dog) {
		this.name = name;
		this.age = age;
		this.gender = gender;
		this.address = address;
		this.dog = dog;
	}
//无参构造方法
	public Master() {
		
	}

构造函数的作用:
    初始化属性!


this指针问题:


    在java中,存在this关键字,这个关键字默认会指向当前对象

public class Master {
	public String name;
	public int age;
	public String gender;
	public String address;
	public Dog[]  dog;
	public Master(String name, int age, String gender, String address,Dog[] dog) {
		this.name = name;
		this.age = age;
		this.gender = gender;
		this.address = address;
		this.dog = dog;
	}
}


static关键字:

  static关键字可以修饰非常多的东西(如:属性、方法、类、语法块、导包)

    |-- static可以修饰属性
    |-- static可以修饰方法
    |-- static还可以修饰类,注意,只能修饰内部类
    |-- 静态导包
    |-- static静态代码块


    static修饰的代码,会提前加载到内存中,并且只有一份,属于该类,
        因此:
        静态方法中,无法直接调用非静态函数(属性)


    被static修饰的属性和方法,不属于对象,属于该类
    直接可以使用类名称.属性(方法)来调用。

public class TestStatic {
	//非静态属性
	public int age;
	// 静态属性
	public static int aa;
   
	
	
	public void say() {
		System.out.println("hello static ");
	}
	
	public static void sayHello() {
		System.out.println("这个是一个静态方法");
	}
	
	{
		// 构造代码块
	}
	
	static {
		// 静态代码块
	}
	

    
类的成员:
    属性
    方法
    构造方法
    静态属性
    静态方法
    构造代码块
    静态代码块

类的成员加载(运行)顺序:

    static修饰的属性和静态代码块最先运行(这两者之间看代码顺序),
    之后才开始运行对象属性和构造代码块(这两者之间看代码顺序),
    最后构造函数开始运行。

java(权限)访问修饰符:


    
    public:    任何地方都可以正常访问该修饰符修饰的属性和方法
    protected:    同包、同类、子类    
    缺省(默认):    同包、同类
    private:    只能是当前类,不允许超过该类

注意:class类,只能被public和默认这两种访问修饰符修饰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值