面对对象的三大特点
三大特点:封装,继承,多态
封装
原则:将【属性隐藏】起来,如果要访问类中某个属性,提供【共公的访问方法】对其访问
封装的步骤
- private关键字来修饰成员变量
- 对需要的访问成员变量,提供getXxx()方法和setXxx()方法
- 注:get是取值 set是赋值
- 封装时的权限控制符区别如下
封装的操作
private的含义
- private是一个权限1修饰符,代表最小的访问修饰符
- 可以修饰成员变量(全局属性),也可以修饰成员方法
- 被private修饰的成员变量和成员方法,只能在本类中去访问
private使用格式
privat 数据类型 变量名;
封装的好处
- 良好的封装能够减少代码的耦合性
- 类内部的结构可以进行随意更改
- 可以对成员变量(全局变量)进行更精确的控制
- 隐藏信息,实现细节
封装优化1_this关键字
我们发现setXxx()方法当中形参名字不符合我们标识符的命名规范—见名知意,如果修改成和成员变量相同的名字,会触发Java程序当中就近原则,会把方法内的变量统统的变成为形参变量,导致赋值失败,我们就可以采用[this]关键字来解决,变量重名的问题。
this的含义
this代表的是所在类的当前对象的引用(地址值),即对象对自己的引用
备注:意识就是方法被那个对象调用,方法中的this指代的就代表的是那个对象,即谁调用,this就是谁
this使用格式
this 成员变量名
使用this关键字修饰方法当中的成员变量,解决成员变量被隐藏的问题:
public class Man {
//1.使用privat关键字修饰成员变量
private String name;
private int age;
//2.提供相应的getXxx()方法和setXxx()方法,
// 可以访问类中成员变量
// getXxx()获取类中成员变量信息
public String getName(){
return name;
}
// setXxx() 设置类中成员变量
public void setName(String name){
name = name;
}
public int getAge(){
return age;
}
// setXxx()设置类中成员变量
public void setAge(int age){
}
}
封装优化2构造方法
当一个对象被创建的时候,构造方法用来初始化对象,给对象的成员变量附初始值
备注:无论你是否在封装里定义构造方法,当类被定义出来的时候,系统会自动的分配一个构造方法–无参构造方法,一但在类中显示的定义构造方法,Java自动提供默认无参构造就会被自动销毁(被回收)
构造方法的定义格式
修饰符 构造方法名(参数列表){
//方法内容
}
// 构造方法没有返回值,构造方法名和类名要保持完全一致
注意事项:
1.构造方法的方法名必须要与类名保持完全一致
2.构造方法不用声明返回值类型,连void也不需要
3.构造方法中不能用return返回一个具体的值
4.如果定义类时没有显式的定义构造方法,系统会给一个默认的无参构造方法
5.一旦定义了一个构造方法,那么编译期会回收提供的隐式构造方法
6.构造方法可以重载:方法名相同,参数列表不同
11
1方法的重载
1方法名一样参数列表不一样的方法他们之间叫做重载
2参数列表不同
参数的个数不同
参数的类型不同
参数的顺序不同
标准类—javaBean
javaBean是java语言编写类的
1 所有成员变量都要使用private关键字修饰
2要为每一个成员变量getXxx()和setXxx()方法
3编写一个无参的构造方法
4最好在提供一个全参的构造方法
这样的给标准就叫JavaBean
2
同样具有与java一样的这些基本数据类型,byle short int long float double char boolean
注意 Scala与java有一些不一样的地方Scala定义
的这些基本数据类型 都是类 例如 int
类型 scalaInt类
基本数据类型和变量
有个特殊的地方String类型没有自己的定义类,而是完全使用java里Java,lang,String下的String类
操作符
无论是在那种编程语言当中都有许多的常见操作符、
val i=123
val i=3.34
val i=true
val i=‘A’
val i=“hello”
** a方法 b 等价于 a.方法(b)
前者是后者的简写形式**