封装和继承
————————封装————————
封装,
指的是对变量属性进行封装,隐藏实现细节
将属性私有化,然后提供公有方法访问私有属性
通过这些公有方法访问私有属性,而不对原有属性进行修改和删除
//类名
public class PersonStruc {
//定义变量
private String name;
private String sex;
private double height;
private double weight;
private String WorkSpace;
private String career;
private String school;
private String phone;
//其他方法
public void PerInfor() {
System.out.println("--------个人简介----------------");
System.out.println("姓名:"+name+"\n"+"性别:"+sex+"\n"+"身高:"+height+"cm"+"\n"+"体重:"+weight+"Kg"+"\n"+"工作地点:"+WorkSpace+"\n"+"职业:"+career+"\n"+"学校:"+school+"\n"+"联系方式:"+phone+"\n");
System.out.println("--------谢谢参与----------------");
}
}
对变量的访问方法有带参数的和不带参数的,带参数的能够在主函数中调用赋值,不带参数的防止属性变量没赋值报错
//实参构造方法
//方法名与类名一致
public PersonStruc(String name,String sex,double height,double weight,String WorkSpace,String career,String school,String phone) {
this.name = name;
this.sex = sex;
this.height = height;
this.weight = weight;
this.WorkSpace = WorkSpace;
this.career = career;
this.school = school;
this.phone = phone;
}
//无参构造方法
public PersonStruc() {
}
采用的是键盘录入数据
Scanner sc = new Scanner(System.in);
System.out.println(“请依次输入姓名,性别,身高,体重,工作地点,职业,学校,11位电话号码”);
String name = sc.next();
String sex = sc.next();
double height = sc.nextDouble();
double weight = sc.nextDouble();
String WorkSpace = sc.next();
String career = sc.next();
String school = sc.next();
String phone = sc.next();
//实例调用类方法
PersonStruc Linder = new PersonStruc(name,sex,height,weight,WorkSpace,career,school,phone);
Linder.PerInfor();
调用方法是实例类调用
封装性-访问说明符
public:所有的类(除了内部类)都能有public访问说明符。你能从任何Java程序的任何对象里使用公有类、成员数据(属性)和方法。
private:只有本类的类对象才能访问的私有变量或方法,类内部成员之间可以访问;
protected:在类中被声明为保护的变量,方法能被其子类访问。
默认:假如没有规定访问说明符,那就是friendly的。拥有友元访问符的类、变量或方法对包(类的一个集合)里的所有类来说都是可访问的。
说明:在方法中的变量不能有访问说明符,因为该变量只能在该方法中使用,外界无法访问。
方法重载是指在一个类的内部提供同名方法,但方法的参数列表不同;方法返回类型不是区分方法重载的标志
方法重写发生在子父类继承关系中,子类提供与父类同名方法,其方法参数列表及返回类型相同,子类重写父类中的方法范围不能比父类小
Java的继承形式被称为单继承(single inheritance),因为每一个Java类都只能有一个超类。所有类的共同基类是Object类
---------一切类的“祖先”——Object