面对对象2

1.构造方法的重载及注意事项
a:如果我们没有给出构造方法,系统将自动提供一个无参构造方法。
b:如果我们给出了构造方法,系统将不再提供默认的无参构造方法。
2.static关键字的特点
a:随着类的加载而加载
b:优先于对象存在
c:被类的所有对象共享
d:可以通过类名调用
其实它本身也可以通过对象名调用。
推荐使用类名调用。
静态修饰的内容一般我们称其为:与类相关的,类成员
3.static的注意事项
a:在静态方法中是没有this关键字的
静态是随着类的加载而加载,this是随着对象的创建而存在。
静态比对象先存在。
b:静态方法只能访问静态的成员变量和静态的成员方法
4.代码块的概述和分类
A:代码块概述
在Java中,使用{}括起来的代码被称为代码块。
B:代码块分类
根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解)。
C:常见代码块的应用
a:局部代码块
在方法中出现;限定变量生命周期,及早释放,提高内存利用率
b:构造代码块
在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行
c:静态代码块
在类中方法外出现,加了static修饰
在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次。
5.继承的引入和概述
A:继承概述
多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。
B:继承格式
通过extends关键字可以实现类与类的继承
class 子类名 extends 父类名 {}
6.继承的好处和弊端
继承的好处
a:提高了代码的复用性
b:提高了代码的维护性
c:让类与类之间产生了关系,是多态的前提
继承的弊端
类的耦合性增强了。
7.继承的注意事项
a:子类只能继承父类所有非私有的成员(成员方法和成员变量)
b:子类不能继承父类的构造方法,但是可以通过super关键字去访问父类构造方法。
c:不要为了部分功能而去继承
8.this和super的区别和应用
this和super的区别
this 代表的是本类对象的引用
super代表的是父类存储空间的标识(可以理解成父类的引用,可以操作父类的成员)
this和super的使用
a:调用成员变量
this.成员变量 调用本类的成员变量
super.成员变量 调用父类的成员变量
b:调用构造方法
this(…) 调用本类的构造方法
super(…) 调用父类的构造方法
c:调用成员方法
this.成员方法 调用本类的成员方法
super.成员方法 调用父类的成员方法
9. 继承中构造方法的关系
子类初始化之前,一定要先完成父类数据的初始化。
10.父类没有无参构造方法,子类怎么办?
a: 在父类中添加一个无参的构造方法
b:子类通过super去显示调用父类其他的带参的构造方法
c:子类通过this去调用本类的其他构造方法
本类其他构造也必须首先访问了父类构造 子类初始化之前,一定要先完成父类数据的初始化。

经典例题
1.编写java程序,完成随机数小游戏
class Test {
public static void main(String[] args) {
int random = (int)(Math.random()*100 + 1);//1-num之间随机数
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();//键盘录入数字
while (number != random) {
if (number > random) {
System.out.println(“猜大了,请往小了猜”);
} else {
System.out.println(“猜小了,请往大了猜”);
}
number = sc.nextInt();
}
System.out.println(“恭喜你,猜对了”);
}
}

2.定义标准手机类并进行测试
class Phone {

// 成员变量
private String brand ;		// 品牌
private String color ;		// 颜色
private int price ;			// 价格

// 构造方法
public Phone() {}

public Phone(String brand, String color, int price) {
	this.brand = brand;
	this.color = color;
	this.price = price;
		}

// 提供get和set方法
public String getBrand() {
	return brand;
}

public void setBrand(String brand) {
	this.brand = brand;
}

public String getColor() {
	return color;
}

public void setColor(String color) {
	this.color = color;
}

public int getPrice() {
	return price;
}

public void setPrice(int price) {
	this.price = price;
}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值