A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiaobokk 中级黑马   /  2016-8-1 22:32  /  451 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 xiaobokk 于 2016-8-1 22:32 编辑

1.构造方法
        概念的引入:Java中通过类创建的对象,具体的是通过类中的构造方法创建对象的
        构造方法的格式:
                                ①方法名与类名相同,大小写也要一致;
                                ②没有返回值类型,void也没有;
                                ③可以有return语句,但是后边不能有值.
                                例如:  class Car{
                                                public Car(){}
                                                
                                           }
                                                
                                
        构造方法的作用:
                                给对象的属性进行初始化.
                                
        构造方法的问题引入:给空参的初始化有局限性  -->  解决办法:构造方法也是可以重载的,因为构造方法也是方法.
        
        构造方法特点:
                                ①方法名与类名相同,大小写也相同;
                                ②没有返回值类型,void也没有.
                                ③每创建一次对象,构造方法都会执行一次;
                                ④构造方法是可以重载的(参数列表要不同);
                                
        构造方法注意事项:      ①如果没有手动定义空参的构造方法,系统会提供一个默认空参构造方法
                                          ②如果我们手动给出了有参的构造方法,系统将不会给出空参构造,建议永远自己默认给出空参构造方法
        
        构造方法与setXxx()方法的赋值的区别
                构造方法:是给对象的属性进行初始化的
                setXxx():是用来修改属性值的(较灵活,较常用)

3 个回复

正序浏览
三.制作帮助文档
        A:对一个类中加入文档注释(/***/)       
                其中有的参数:     @author                --> 提取作者内容
                                          @version                -->提取版本内容
                                          @param                 -->参数名称
                                          @return                 -->程序运行完返回的数据
        B:通过javadoc命令生成说明书
                javadoc -d doc -version -author ArrayTool.java
               
                javadoc        生成说明书
                -d                目录
                doc                指代当前目录的doc文件夹(也可以是D:/javadoc/)
               

四.使用JDK帮助文档
        ①通过JDK_API帮助文档可以查找相关的类
        ②在java.lang包下的类不用导包
       
回复 使用道具 举报
二.static关键字
        static关键字的特点:
                        ①随着类的加载而加载
                        ②先于对象存在
                        ③被类的所有对象共享        举例(饮水机,水杯)
                        ④可以通过类名调用
       
        stataic关键字的注意事项:
                        ①在静态方法中是没有this关键字的
                        ②静态只能访问静态
                          非静态可以访问一切(既可以访问静态的,也可以访问非静态的)
                       
        静态变量与成员变量的区别:       
                        ①所属不同
                                成员变量:成员变量所属于对象,随着对象的创建而存在
                                静态变量:静态变量从属于类,随着类的加载而加载
                        ②内存中位置
                                成员变量:存于堆中
                                静态变量:存于方法区中的静态区
                        ③内存出现时间不同
                                成员变量:随着对象的创建而存在,随着对象的消失而消失
                                静态数据:随着类的加载而加载,随着类的消失而消失
                        ④调用不同
                                成员变量:只能通过类对象来进行调用
                                静态数据:可以通过对象与类名(推荐)进行调用
                               
        工具类: 一般将方法定义为static的,为了不让别人通过创建对象调用,
                        将类的构造方法私有化,只允许通过类名调用

回复 使用道具 举报
自己写的测试手机类代码
[Java] 纯文本查看 复制代码
class Demo_Phone {
	public static void main(String[] args){
		Phone p1 = new Phone();		//调用空参的构造方法
		p1.setBrand("HuaWei");		//调用setBrand方法
		p1.setPrice(2999);			//调用setPrice方法
		System.out.println(p1.getBrand()+"..."+p1.getPrice());	//调用get方法
		p1.call();					//调用打电话功能
		System.out.println("--------------------");
		Phone p2 = new Phone("XiaoMi",1999); //调用有参的构造方法
		p2.show();					//调用show方法()
		p2.call();					//调用打电话
	}
}

class Phone {
	private String brand;	//定义手机的品牌
	private int price;		//定义手机的价格

	public Phone(){}		//定义空参构造方法
	
	public Phone(String brand,int price){
		this.brand = brand;
		this.price = price;
	}

	public String getBrand(){	//brand的get方法
		return brand;
	}

	public void setBrand(String brand){	//brand的set方法
		this.brand = brand;
	}
	
	public int getPrice(){		//price的get方法
		return price;
	}

	public void setPrice(int price){	//price的set方法
		this.price = price;
	}
	
	public void call(){					//打电话功能,其他功能就不写了
		System.out.println(brand+"打电话");
	}

	public void show(){			//手机的show方法
		System.out.println(brand+"..."+price);	
	}
}




测试创建函对象顺序的代码
[Java] 纯文本查看 复制代码
class Demo_Phone {
	public static void main(String[] args){
		Phone p = new Phone("huawei",2999);
		p.show();
	}
}
class Phone {
	private String brand = "aaa";	//定义手机的品牌
	private int price =111 ;		//定义手机的价格

	public Phone(){}		//定义空参构造方法
	
	public Phone(String brand,int price){
		show();
		this.brand = brand;
		this.price = price;
		
	}

	public String getBrand(){	//brand的get方法
		return brand;
	}

	public void setBrand(String brand){	//brand的set方法
		this.brand = brand;
	}
	
	public int getPrice(){		//price的get方法
		return price;
	}

	public void setPrice(int price){	//price的set方法
		this.price = price;
	}
	
	public void call(){					//打电话功能,其他功能就不写了
		System.out.println(brand+"打电话");
	}

	public void show(){			//手机的show方法
		System.out.println(brand+"..."+price);	
	}
}


另附一张配套的内存分析图

构造方法初始化数据的顺序.png (173.05 KB, 下载次数: 7)

内存分析图

内存分析图
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马