Java语言基础(七)

xiaoxiao2021-02-28  130



Java语言基础(七)

A.封装概述:是指隐藏对象的属性和实现的细节,只对外提供公共的访问方式;  好处:隐藏实现的细节,提供公共的访问方式       提供代码的复用性       提高安全性 B.封装原则:   1).将对外不需要提供的内容都隐藏起来;   2).将属性隐藏,对外提供公共的方法;  private关键字:  是一个权限修饰符;  可以修饰成员(成员变量和成员方法)  被private修饰的成员只能在本类中被访问; C. private常用的案例:  一个成员变量用private修饰;  对其提供setXxx()方法和getXxx()方法对其访问;  一个标准的案例使用过程;  例如:学生类       姓名       学号       年龄       班级

代码: ************************************************************************************************************************************************************** class StudentNew{  //封装学生类的属性   private String Name;   private int Number;   private int Age;   private String Grade;   //得到学生的姓名   public void seName(String Name){    this.Name=Name;    }   //得到学生的学号   public void setNumber(int Number){    this.Number=Number;   }   //得到学生的年龄   public void setAge(int Age){    this.Age=Age;   }   //得到学生类的班级   public void setClass(String Grade){    this.Grade=Grade;   }   //返回学生的姓名   public String getName(){    return Name;   }   //返回学生的学号   public int getNumber(){    return Number;   }   //返回学生的年龄   public int getAge(){    return Age;   }   //返回学生的班级   public  String getGrade(){    return Grade;   } //上述代码也可用Alt+shift+s快捷实现增加代码的xiaolv,也可以点source实现;    } public class StudentNewDemo {   public static void main(String[] args){    //定义一个学生类对象    StudentNew stu=new StudentNew();    stu.seName("高圆圆");    stu.setNumber(7);    stu.setAge(18);    stu.setClass("初三一班");    //输出这个学生类对象    System.out.println("姓名:"+stu.getName()+"\t"+"学号:"+stu.getNumber()+"\t"+"年龄:"+stu.getAge()+"\t"+"班级:"+stu.getGrade());            //定义第二个学生类对象    StudentNew stu1=new StudentNew();    stu1.seName("赵又廷");    stu1.setNumber(8);    stu1.setAge(19);    stu1.setClass("初三二班");    //输出这个学生类对象    System.out.println("姓名:"+stu1.getName()+"\t"+"学号:"+stu1.getNumber()+"\t"+"年龄:"+stu1.getAge()+"\t"+"班级:"+stu1.getGrade());           } } ************************************************************************************************************************************************************

输出结果:

姓名:高圆圆 学号:7 年龄:18 班级:初三一班 姓名:赵又廷 学号:8 年龄:19 班级:初三二班

*************************************************************************************************************************************************************

D.this关键字: 代表:所在类的对象引用(方法被哪个对象引用,this就代表哪个对象) 什么时候用: 局部变量隐藏成员变量

例如

class Person{      private int age;         public void setAge(int age){   //把局部变量赋值给成员变量这个this.age指的就是类中的age,如果没有this就近原则指的就是局部变量的赋值   this.age=age  } }

E.构造方法 构造方法的作用:给对象的数据进行初始化; 构造方法的格式:方法名与类名相同;   没有返回值类型,连void都没有;   没有具体的返回值;

构造方法的注意事项:如果你不定义构造方法,系统会默认一个构造方法;      如果你提供了一个构造方法,系统将不再提供构造方法;      构造方法可以重载; 成员方法 其实就是我们前面讲过的方法 方法具体划分: 根据返回值:               有明确返回值方法                                                  返回void类型的方法

                          根据形式参数           无参方法

        带参方法 F.一个类的基本格式:  类  成员变量  构造方法:无参构造;   有参构造;  成员方法   setXxx();   getXxx();  给成员变量赋值方式:   无参构造方法:setXxx();   带参构造方法

标准类案例:  用getXxx()比较麻烦,增加show(),如果不单独获取数据可以不用getXxx();

class Person{  private String Name;  private String Country;  private String Gender;  //使用带参构造初始化  public Person(String Name,String Country,String Gender){   this.Name=Name;   this.Country=Country;   this.Gender=Gender;  }  public void showPerson(){   System.out.println("姓名:"+Name+"\n"+"国籍:"+Country+"\n"+"性别:"+Gender);  }

} public class PersonDemo {  public static void main(String[] args){   Person p=new Person("高圆圆","中国","女");   p.showPerson();  }

} *********************************************************************************************** 输出结果: 姓名:高圆圆 国籍:中国 性别:女

G.类的初始化过程:   Person p=new Person();在内存中做了几件事情?  6件事情: 1)给Person p在栈内存中分配空间; 2)给 new Person()在对内存中分配空间; 3)通过加载Person类加载成员变量,默认初始化值; 4)显示初始化:通过构造方法进行数据初始化; 5)通过创建对象进行赋值操作; 6)给堆内存标记一个内存空间的地址值:Person p里面的地址间接指向;

转载请注明原文地址: https://www.6miu.com/read-42039.html

最新回复(0)