目录
1 面向对象的三大特点
封装
继承
多态
1.1 封装
private 关键字 是一个权限修饰符
可以修饰成员(成员变量和成员方法)
作用: 保护成员不被别的类使用(被private修饰的成员 的作用范围仅限于当前类 )。
针对private所修饰的成员变量,如果需要被其他的类使用,提供相应的额外的操作方法:
提供get变量名() 用户获取成员变量(被private)的值 方法的修饰符是public
提供set变量名(参数)方法 用户设置成员变量的值 方法也必须使用public进行修饰
测试类
/*
类 所包含的应该是与其相关的成员
*/
public class Student {
//成员变量
String name;
private int age =18;// 在声明成员变量的时候 可以给其赋予一个默认值
public int getAge(){
return age;
}
public void setAge(int a){
if(a < 0 || a > 120){
System.out.println("您输入的年龄不合法");
}else{
age = a;
}
}
}
1.2this关键字
public void setName(String name ){
System.out.println(name);
this.name = name;//将局部变量的name赋值给成员变量的name 可以使用this
}
this修饰成员变量;
可以区分成员变量和局部变量:如果方法的形参和成员变量同名,不带this修饰的变量指的是形参,而this修饰的是成员变量
什么时候使用this?解决局部变量隐藏(屏蔽)成员变量
this的内存原理:
this代表当前调用方法的对象。那个对象调用当前的方法,this就代表那个对象
this代表本类的当前对象
标准的java类的写法
标准的java类 也成为了java bean
1.3 封装思想
封装是面向对象的三大特征之一。
是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的。
封装原则:
将类的某些信息隐藏在类的内部,不允许外部程序直接访问。而是通过该类提供的方法来实现对隐藏信息的操作和访问。
成员变量使用private修饰 提供对象的getXxx()和setXxx()方法
封装的好处:
通过方法来控制成员变量的操作,提高代码的安全性
把代码用方法进行封装,可以提高代码的复用性。
1.4 java中封装的体现
1 对于成员变量的封装 使用private
2 类体现的也是对一类事物的属性和行为的封装
3 方法体现了封装的思想:就是将某一个功能封装在其中。
2 构造方法
构造方法也称为构造器(constructor),用于对象的初始化。构造方法是一个创建对象时被自动调用的特殊方法。目的就是对对象进行初始化。
构造方法的名称要与类名完全一致。 构造方法没有返回值 (void也不写)
java通过new关键字来调用构造方法,从而返回该类的一个实例对象,是一种特殊的方法
public Student(){
// System.out.println("student的无参构造被调用...");
}
2.1 构造方法的注意事项
1 构造方法 如果没有定义构造方法 系统将给出一个默认的无参构造方法
如果定义了构造方法 系统都将不再提供默认的无参构造
2 构造方法的重载
如果自定义了带参的构造方法,还要使用无参构造,就必须手动写出无参构造
3 无论是否使用无参构造,在开发中,都推荐显式的将无参构造定义出来
4 重要功能:可以使用带参构造为成员变量进行初始化
public Student(){
// System.out.println("student的无参构造被调用...");
}
public Student(String name){
this. name = name;
}
public Student(int age){
this.age =age;
}
public Student(String name , int age){
this.name = name;
this.age = age;
}
分别使用不同的构造方法来创建对象
在构造方法中调用其他的构造方法
public Student(String name , int age){// 在构造方法中 去调用别的构造方法
this(name);// 调用本类的构造方法
this.age =age;
}
可以使用this(参数列表)调用本类的其他构造方法。但是要注意一点:使用this调用本类其他构造方法 必须位于构造方法的第一条语句。因此也就是说对于构造方法的调用只能调用一次。
3 标准的java bean的写法
1 成员变量 使用private修饰
2 提供getter和seter方法 来访问成员变量
3 提供构造方法:
无参的 和带有多个参数的
public class Book {
//成员变量
private String title;
private double price;
private String author;
//构造方法
public Book(){
}
public Book(String title,double price , String author){
this.title = title;
this.price = price;
this.author = author;
}
//getter 和 sertter
public String getTitle(){
return title;
}
public void setTitle(String title){
this.title = title;
}
public double getPrice(){
return price;
}
public void setPrice(double price){
this.price = price;
}
pu