黑马程序员技术交流社区
标题:
自己的笔记 面向对象第二天
[打印本页]
作者:
xiaobokk
时间:
2016-8-1 22:32
标题:
自己的笔记 面向对象第二天
本帖最后由 xiaobokk 于 2016-8-1 22:32 编辑
1.构造方法
概念的引入:Java中通过类创建的对象,具体的是通过类中的构造方法创建对象的
构造方法的格式:
①方法名与类名相同,大小写也要一致;
②没有返回值类型,void也没有;
③可以有return语句,但是后边不能有值.
例如: class Car{
public Car(){}
}
构造方法的作用:
给对象的属性进行初始化.
构造方法的问题引入:给空参的初始化有局限性 --> 解决办法:构造方法也是可以重载的,因为构造方法也是方法.
构造方法特点:
①方法名与类名相同,大小写也相同;
②没有返回值类型,void也没有.
③每创建一次对象,构造方法都会执行一次;
④构造方法是可以重载的(参数列表要不同);
构造方法注意事项:
①如果没有手动定义空参的构造方法,系统会提供一个默认空参构造方法
②如果我们手动给出了有参的构造方法,系统将不会给出空参构造,建议永远自己默认给出空参构造方法
构造方法与setXxx()方法的赋值的区别
构造方法:是给对象的属性进行初始化的
setXxx():是用来修改属性值的(较灵活,较常用)
作者:
xiaobokk
时间:
2016-8-1 22:32
自己写的测试手机类代码
[mw_shl_code=java,true]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);
}
}[/mw_shl_code]
测试创建函对象顺序的代码
[mw_shl_code=java,true]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);
}
}[/mw_shl_code]
另附一张配套的内存分析图
构造方法初始化数据的顺序.png
(173.05 KB, 下载次数: 25)
下载附件
2016-8-1 22:18 上传
内存分析图
作者:
xiaobokk
时间:
2016-8-1 22:32
二.static关键字
static关键字的特点:
①随着类的加载而加载
②先于对象存在
③被类的所有对象共享 举例(饮水机,水杯)
④可以通过类名调用
stataic关键字的注意事项:
①在静态方法中是没有this关键字的
②静态只能访问静态
非静态可以访问一切(既可以访问静态的,也可以访问非静态的)
静态变量与成员变量的区别:
①所属不同
成员变量:成员变量所属于对象,随着对象的创建而存在
静态变量:静态变量从属于类,随着类的加载而加载
②内存中位置
成员变量:存于堆中
静态变量:存于方法区中的静态区
③内存出现时间不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
静态数据:随着类的加载而加载,随着类的消失而消失
④调用不同
成员变量:只能通过类对象来进行调用
静态数据:可以通过对象与类名(推荐)进行调用
工具类: 一般将方法定义为static的,为了不让别人通过创建对象调用,
将类的构造方法私有化,只允许通过类名调用
作者:
xiaobokk
时间:
2016-8-1 22:32
三.制作帮助文档
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包下的类不用导包
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2