黑马程序员——面向对象——构造方法与static关键字

------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:调用不同
静态变量可以通过类名调用,也可以通过对象调用
成员变量只能通过对象名调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值