版权声明: https://blog.csdn.net/qq_40794602/article/details/86679979
封装:
- 封装概述 :是指隐藏对象的属性和实现细节,仅对外提供公共public访问方式。
- 封装好处 :隐藏实现细节,提供公共的访问方式 ;提高了代码的复用性和安全性。
- 封装原则:封装原则将不需要对外提供的内容都隐藏起来;把属性隐藏,提供公共方法对其访问。
private(私有)关键字特点:
- 是一个权限修饰符 ;可以修饰成员变量和成员方法;被其修饰的成员只能在本类中被访问
- 当成员变量用private修饰表示外界不能访问
- 案例的解决方法:把成员变量用private修饰;提供对应的getXxx()和setXxx()方法;注意:get和set后面的字母一般都用大写
使用private对类成员属性进行封装(EG):
public class J1 {
public static void main(String[] args) {
Person p = new Person();
p.name = "Vincent_Kwok";
p.setAge(20);
p.speak();
//获取年龄?提供一个get方法
System.out.println("年龄:" + p.getAge());
}
}
class Person{
String name;
private int age;
public int getAge(){ //提供接口对封装属性进行访问
return age;
}
public void setAge(int myAge){//提供接口对封装属性进行操作
//年龄赋值的问题,不能赋值负数,也不能赋值无限大
if(myAge > 0 && myAge <= 150){//才是符合现实情况的
age = myAge;
}else{
System.out.println("年龄只能是1~150,如果不是这范围,请你回火星去...");
}
}
public void speak(){
System.out.println("I'm " + name + "," + age + " years old");
}
}
this关键字:
- this关键字特点:代表当前对象的引用
- this的应用场景:用来区分成员变量和局部变量重名
- this和外面调用的变量是指向同一地址的,指的是同一个对象【好好理解】
构造方法:
- 方法名与类名相同(大小也要与类名一致)
- 没有返回值类型,连void都没有
- 没有具体的返回值return
- 构造方法分为有参构造和无参构造两种
- 构造方法可以重载
构造方法EG:
public class J1{
public static void main(String[] args){
Student stu = new Student("学生");
System.out.println(stu.name);
}
}
class Student{
String name;
public Student(String name){//有参构造方法
this.name = name; //使用this关键字
}
}
构造方法注意事项:
- 如果我们没有给出构造方法,系统将自动提供一个无参构造方法。
- 如果我们给出了构造方法,系统将不再提供默认的无参构造方法。
- 如果我们声明的有参的构造方法,这个时候,如果我们还想使用无参构造方法,就必须自己给出。建议永远自己给出无参构造方法
- 正确构造方法的书写格式 【public 类名()】
static关键字的特点:推荐阅读博客
- 随着类的加载而加载
- 优先于对象存在
- 被类的所有对象共享
- static声明的成员属性可以通过类名调用 其实它本身也可以通过对象名调用。 推荐使用类名调用【强调】
- 在C/C++中static是可以作用域局部变量的,但是在Java中切记:static是不允许用来修饰局部变量。不要问为什么,这是Java语法的规定
补充:eclipse可以快速生成构造方法