Java面向对象(二)

一.封装java

一、为何要使用封装
在类的外部直接操做类的属性是”不安全的"
二、如何实现封装
   1)、属性私有化:设置属性的修饰符为private
    2) 、提供公共的set和get方法
赋值的方法:setter:   public void setXXX(参数){} XXX:与属性名相同,把属性名的第一个字母改成大写
    参数:与属性的类型一致
取值的方法:getter: public 返回值类型  getXXX(){} 返回值的类型与属性的类型一致
   3) 、在set方法中添加程序流程控制语句安全

private String sex;
//set方法
public void setSex(String _sex){
   if("男".equals(_sex)||"女".equals(_sex)){
      sex = _sex;
   }else{
      System.out.println("输入性别有误,仅为男或女!");
   }
}
//get方法
public String getSex(){
   return sex;
}

三、使用封装的好处
封装属性,暴露公共的访问方法,提升数据的安全性
同时方便修改和维护this

二.构造方法code

一、构造方法的语法
   访问修饰符  构造方法名(参数列表){
       方法体;
   }
二、构造方法的特色对象

1)、构造方法名必须与类名相同
2) 、构造方法没有返回值类型,也不写void. 若是写了void再也不是构造方法,而是成员方法get

三、构造方法的分类class

1)、默认构造方法,若是类中没有定义构造方法,则在运行时系统提供一个公共的无参的构造方法。 public Student(){}
2)、显示构造方法:在类定义的构造方法。此时系统再也不提供公共的无参的构造方法。建议在类显示定义无参的构造方法
四、构造方法什么时候调用?
在建立对象时,与new关键词一块儿使用。每一个对象仅调用一次
五、构造方法的做用
初始化属性的值。
六、构造方法能够重载吗?
能够。变量

三.参数传递语法

1.按值传递引用

基本类型之间传参是按值传递,形参与实参是两个独立的空间。形参的改变不影响实参的值

2.按地址传递

引用类型之间传参是按“地址"传递,实参传递给形参的是实参所引用对象的”地址".形参与实参引用同一“地址"的对象。
形参改变对象的属性值,实参再访问对象时,为改变后的值。

四.this关键字与static关键字

4.一、this是什么?
this是一个引用。在对象的内部引用当前对象。存放的是当前对象的”地址"
4.二、this能够访问哪些成员
    4.2.1 成员变量
    4.2.2 成员方法
    4.2.3 构造方法
4.三、this在哪里使用? 
    4.3.一、在类成员方法使用:  区分红员变量与同名的局部变量.this.成员变量
    4.3.二、在类成员方法中,访问其余成员方法 : this.成员方法名()
    4.3.三、在类的某个构造方法中,调用类的其余构造方法 :this(参数). 必定写在构造方法的有效代码的"第一行"

好处:实现代码的重用

static:静止的,不变的
一、 修饰属性:静态属性。属于类全部。全部的对象共享
访问方式:  类名.静态属性名
static声明的变量会放在方法区中,static声明的变量只初始化一次,加载类的时候初始化,
若是多个静态变量,会按照静态变量在类中的顺序进行初始化

2、修饰方法  :静态方法
访问方式:类名.静态方法

1)、与成员方法的区别:
a、 成员方法属于对象全部,
成员方法中能够访问成员变量,其余成员方法,静态变量,静态方法,可使用this关键词
b、静态方法属于类全部,与对象无关。
静态方法中仅能够访问静态变量,静态方法,
不能够直接访问成员变量,成员方法。能够建立对象间接的访问
不可使用this关键词

三、修饰代码块:在类加载时执行,仅执行一次
语法 : static{ }
1)、与实例代码块的区别:
a、静态代码块在类加载时执行,仅执行一次
b、实例代码块,每建立一个对象执行一次,在构造方法前执行

四、修饰内部类: 静态内部类

五、注意不能修饰局部变量

相关文章
相关标签/搜索