0

【JAVA基础】面向对象基础

 1 year ago
source link: https://blog.51cto.com/u_15773567/5651042
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

五.补充知识:成员变量、局部变量区别

一.构造器

构造器的作用

  • 用于初始化一个类的对象,并返回对象的地址。

构造器的定义格式

修饰符 类名(形参列表){
...
}
public class Car {
...
// 无参数构造器
public Car(){
...
}
// 有参数构造器
public Car(String n, String b){
...
}

构造器的分类

类型 变量名称 = new 构造器;

  • 无参数构造器(默认存在的):初始化的对象时,成员变量的数据均采用默认值。
  • 有参数构造器:在初始化对象的时候,同时可以为对象进行赋值
  • 任何类定义出来,默认就自带了无参数构造器,写不写都有。
  • 一旦定义了有参数构造器,无参数构造器就没有了,此时就需要自己写一个无参数构造器了。

二. this关键字

  • 作用:出现在成员方法、构造器中代表当前对象的地址,用于访问当前对象的成员变量、成员方法
this出现在有参数构造器中的用法:
public class base {
public static void main(String[] args) {
Car car = new Car("张三",98.0);
System.out.println(car.name);
System.out.println(car.price);
}

}

未引入this:

public class Car {
String name;
double price;
public Car(String n , double b){
name = n;
price = b;
}
}
【JAVA基础】面向对象基础_构造器

引入this:

public class Car {
String name;
double price;
public Car(String name , double price){
this.name = name;
this.price = price; }
}
【JAVA基础】面向对象基础_封装_02

测试this的地址:

public class base {
public static void main(String[] args) {
Car car = new Car();
car.run();
System.out.println(car);
}

}
public class Car {

public Car() {
System.out.println("无参构造中的this:"+this);

}

public void run(){
System.out.println("方法中的this:"+this);
}

}
【JAVA基础】面向对象基础_构造器_03
故此 this 代表当前对象的地址
  • 面向对象的三大特征: 封装,继承,多态 。
  • 什么是封装? 隐藏实现细节,暴露出合适的访问方式。( 合理隐藏、合理暴露 )

为什么要用封装?

【JAVA基础】面向对象基础_封装_04

封装的实现步骤

  • 一般对成员变量使用private(私有)关键字修饰进行隐藏,private修饰后该成员变量就只能在当前类中访问。
  • 提供public修饰的公开的getter、setter方法暴露其取值和赋值。
未对成员变量使用private(私有)关键字修饰进行隐藏:
public class Student {
int age;
}
【JAVA基础】面向对象基础_构造器_05
对成员变量使用private(私有)关键字修饰进行隐藏:
public class Student {
private int age;
}
不能在其他类中赋值
【JAVA基础】面向对象基础_成员变量_06

封装的好处小结

  • 加强了程序代码的安全性。
  • 适当的封装可以提升开发效率,同时可以让程序更容易理解与维护。

四.标准 JavaBean

JavaBean

  • 也可以理解成实体类,其对象可以用于在程序中封装数据。

**标准 ****JavaBean **须满足如下要求:`

  • 成员变量使用 private 修饰。
  • 提供每一个成员变量对应的 setXxx() / getXxx()。
  • 必须提供一个 无参构造器。

五. 补充知识:成员变量、局部变量区别

成员变量和局部变量的区别

【JAVA基础】面向对象基础_成员变量_07

成员变量和局部变量的区别

【JAVA基础】面向对象基础_成员变量_08

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK