面向对象思想概述
比如猪八戒吃水果,面向过程:吃(猪八戒,水果),面向对象:猪八戒.吃(水果)。
面向对象思想特点
①是一种更符合我们思想习惯的思想
②可以将复杂的事情简单化
③将我们从执行者变成了指挥者
④角色发生了转换
面向对象开发就是不断的创建对象,使用对象,指挥对象做事情。
面向对象特征:封装(encapsulation)、继承(inheritance)和多态(polymorphism)
类与对象概述
我们学习编程就是为了把我们日常生活中实物用学习语言描述出来,那么我们该如何描述现实世界事物呢?
①属性就是该事物的描述信息(事物身上的名词)
②行为就是该事物能够做什么(事物身上的动词)
Java中最基本的单位是类,Java中用class描述事物也是如此
①成员变量就是事物的属性
②成员方法就是事物的行为
定义类其实就是定义类的成员(成员变量和成员方法)
①成员变量和以前定义变量是一样的,只不过位置发生了改变。在类中,方法外。
②成员方法和以前定义方法是一样的,只不过把static去掉,加上static则变成了静态方法。
类和对象的概念:类是一组相关的属性和行为的集合,对象是该类事物的具体体现
对象的使用:
类名 对象名 = new 类名();
对象名.变量名
对象名.方法名(...)
成员变量和局部变量的区别
①在类中的位置不同:成员变量:在类中方法外,局部变量:在方法定义中或者方法声明上
②在内存中的位置不同:成员变量:在堆内存(成员变量属于对象,对象进堆内存),局部变量:在栈内存(局部变量属于方法,方法进栈内存)
③生命周期不同:成员变量:随着对象的创建而存在,随着对象的消失而消失,局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
④初始化值不同:成员变量:有默认初始化值,局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。
注意事项:
①局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
②基本数据类型变量包括哪些:byte,short,int,long,float,double,boolean,char
③引用数据类型变量包括哪些:数组,类,接口,枚举
匿名对象的概述
匿名对象就是没有名字的对象 ,他只调用一次。匿名对象可以作为实际参数传递
new 类名().方法();
调用多次的时候,不适合。匿名对象调用完毕就是垃圾。可以被垃圾回收器回收。
封装的概述
封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
封装好处:1、隐藏实现细节,提供公共的访问方式2、提高了代码的复用性3、提高安全性。
封装原则:1、将不需要对外提供的内容都隐藏起来2、把属性隐藏,提供公共方法对其访问。
this关键字的概述
this关键字特点:代表当前对象的引用 ,用来区分成员变量和局部变量重名
手机类代码class Demo_Phone {
public static void main(String[] args) {
Phone p1 = new Phone();
p1.setBrand("三星");
p1.setPrice(5288);
System.out.println(p1.getBrand() + "..." + p1.getPrice());
p1.call();
p1.sendMessage();
p1.playGame();
}
}
/*
手机类
属性:品牌brand,价格price
行为:打电话call,发短信sendMessage,玩游戏,playGame
*/
class Phone {//java bean
private String brand;//品牌
private int price;//价格
public void setBrand(String brand) {//设置品牌
this.brand = brand;
}
public String getBrand() {//获取品牌
return this.brand;//this.可以省略,你不加系统会默认给你加
}
public void setPrice(int price) {//设置价格
this.price = price;
}
public int getPrice() {//获取价格
return price;
}
public void call() {//打电话
System.out.println("打电话");
}
public void sendMessage() {//发短信
System.out.println("发短信");
}
public void playGame() {//玩游戏
System.out.println("玩游戏");
}
}