------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一.构造方法
1.构造方法的概述与作用
构造方法就是在创建对像时,对象进行初始化。
2.构造方法的特点
1.构造的方法名必须与类名完全一致,大小写也要一致
2.构造方法的没有返回值类型,包含void
3.构造方法没有返回值
3构造方法的重载
1.之前学习过方法的重载:方法的重载与返回值无关,只和参数列表有关(包含参数类型与参数列表长度)。
2.构造方法注意事项
a:如果我们没有给出构造方法,系统将自动提供一个无参构造方法。
b:如果我们给出了构造方法,系统将不再提供默认的无参构造方法。
这个时候,如果我们还想使用无参构造方法,就必须自己敲出。建议自己给出无参构造方法。
3.给成员变量赋值的两种方式
a:setXxx()方法
set方法为我们以后常用方法,用set方法进行赋值非常方便灵活。
b:构造方法
构造方法的主要应用是在对对象进行初始化,赋值之后再进行改变很难。
二.完成手机类的标准类的制作。
<span style="font-family:FangSong_GB2312;font-size:18px;"><strong><span style="font-family:FangSong_GB2312;font-size:18px;"><strong><span style="font-family:FangSong_GB2312;"><strong><span style="font-family:Microsoft YaHei;font-size:18px;">//手机类
class Phone{
//定义成员变量
private String brand;
private int price;
//构造无参方法
public Phone(){}
//构造有参方法
public Phone(String brand,int price){
this.brand=brand;
this.price=price;
}
//用getXxx和setXxx定义方法
public String getBrand(){
return brand;
}
public void setBrand(String brand){
this.brand=brand;
}
public int getPrice(){
return price;
}
public void setPrice(int price){
this.price=price;
}
//定义show方法
public void show(){
System.out.println(brand+"--"+price);
}
}
//手机测试类
class PhoneDemo {
public static void main(String[] args){
//创建测试对象
Phone p=new Phone();
//通过set方法为对象赋值
p.setBrand("三星");
p.setPrice(1999);
p.show();
//通过方法对变量进行输出
System.out.println(p.getBrand()+"--"+p.getPrice());
//创建第二个对象,并通过构造方法赋值
Phone p2=new Phone("苹果",2999);
p2.show();
System.out.println(p2.getBrand()+"--"+p2.getPrice());
}
}
</span></strong></span></strong></span></strong></span>
三.面向对象(创建一个对象的步骤)
Student s=new Student();
(1):加载Student.class字节码文件进内存
(2):在栈内存为Student s开辟空间
(3):在堆内存为学生对象开辟空间
(4):对学生对象的成员变量进行默认初始化
(5):对学生对象的成员变量进行显示初始化
(6):通过构造方法对学生对象的成员变量赋值
(7):学生对象初始化完毕,把对象地址值赋值给s
四.面向对象(static关键字)
1.static关键字的特点
a:随着类的加载而加载
b:优先于对象存在
c:被类的所有对象共享
如果成员变量是被所有对象共享的,那么它就应该定义为静态的。
d:可以通过类名调用
既可以通过对象名调用,也可以使用类名调用(推荐使用后一种)。
静态修饰的内容一般我们称其为:类变量
2.static的注意事项
a:在静态方法中是没有this关键字的
静态是随着类的加载而加载,this是随着对象的创建而存在。类早于对象,所以无this。
b:静态只能访问静态,非静态可以访问静态的也可以访问非静态的
3.静态变量和成员变量的区别
A:所属不同
静态变量属于类,所以也称为类变量
成员变量属于对象,所以也称为实例变量
B:内存中位置不同
静态变量存储于方法区的静态区
成员变量存储于堆内存
C:内存出现时间不同
静态变量随着类的加载而加载,随着类的消失而消失
成员变量随着对象的创建而存在,随着对象的消失而消失
D:调用不同
静态变量可以通过类名调用,也可以通过对象调用
成员变量只能通过对象名调用