/*
类,是描述相同事物的共同特征的抽象
对象,是类的实例
类名:首字母大写,满足驼峰写法
一个Java文件中可以有多个类,但只能有一个公共类
若一个类中写了有参数构造器却没有写无参数构造器 原有缺省无参构造器会被覆盖
*/
/*
this关键字
代表当前对象
可以用在实例方法和构造器中
在方法中,谁调用这个方法,this代表谁
用在构造器中,代表构造器中初始化对象的使用
*/
/*
封装优点:
提高安全性
实现组件化
封装的规范:
建议成员变量私有
提供成套的getter+setter获得变量和赋值
核心思想:合理隐藏,合理暴露
*/
/*
static关键字
有static修饰的变量是类变量(可以使用类名调用)
有static修饰的成员方法是类方法(静态方法,属于类本身)
请不要使用对象访问静态变量!
同一个类中访问静态方法可以省略类名
*/
/*
实例方法可以访问实例变量也可以访问静态方法变量
静态方法可以访问静态方法和静态变量但不可访问实例方法变量
*/
/*
继承子类继承父类可以得到父类的全部属性和方法
java中一个子类只能有一个父类
子类不会继承父类构造器
子类是否可以继承父类的私有方法?不可直接访问
子类是否可以继承父类的静态方法?子类只是可以访问父类静态方法,并不能说是继承
父类只有有参的构造方法,子类也只能有有参的构造方法,且子类的有参构造方法必须显示调用父类的有参构造方法。
一般使用super调用父类
子类和父类采取就近原则 同名子类有调用子类 否则调用父类
*/
当父类只有有参构造函数是,子类的构造方法:
class Student extends People{
public Student (String name)
{
super(name);
}
}
class People {
public People(String name) {
this.name = name;
}
private String name;
private String getName(){
return this.name;
}
}
子类不能直接调用父类的私有方法:
public static void main(String[] args){
Student a = new Student("nig");
System.out.println(Student.getName());
}
上图运行会报错,因为访问了父类的私有方法
改正方法:修改getName的修饰符