封装:设计程序时追求“高内聚,低耦合”,就是操作细节自己完成不允许外部干涉,低耦合是仅暴露少量的方法给外部使用,尽量方便外部调用。
封装的优点:1、提高代码的安全性2、提高代码的复用性3、高内聚,低耦合
相关访问控制符:
1、private表示私有,只有自己类能访问
2、default表示没有修饰符修饰,只有同一个包的包装类能访问
3、protected表示可以被同一个包的类以及其他包的子类访问
4、public表示可以被该项目的所有类访问
相关代码:
public class Test1 {
public static void main(String[] args) {
People p=new People();
// p.id;不可用
}
}
class People{
private int id;
void pri(){
System.out.println(id);
}
}
class student extends People{
void pri1(){
// System.out.println(id);虽然继承但是不可用,私有类只能自己用
}
}
一般在用的时候,类的属性一般用private访问权限,提供相应的get/set 方法来访问相关属性,这些方法通常是public修饰,以提供对属性的赋值与读取操作,如果只用于本类的方法可以用private修饰,希望其它类调用的方法用public修饰。
kage Sodifficult;
public class testa {
private int id;
private String name;
public void setId(int id) {
if(id>=100&&id<=1000){
this.id=id;
}else{
System.out.println("不符合输入条件");
}
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
}
package Sodifficult;
public class testa1 {
public static void main(String[] args) {
testa w=new testa();
w.setId(1234);
}
}
多态:
多态指的是同一个方法调用,由于对象不同可能会有不同的行为。现实生活中,同一方法中,具体实现完全不同。多态是方法的多态,不是属性的多态。
而多态存在有三个必要条件:继承,方法重写,父类引用指向子类对象。
父类引用指向子类对象后,用父类引用调用子类重写的方法。
关于向上转型,是指父类引用指向子类对象,属于自动类型转换,向上转型后父类引用变量只能调用它编译类型的方法,不能调用它运行时类型的方法,这时我们需要进行类型的强制转换,也可以称为向下转型。
代码如下:
public class Testp {
public static void main(String[] args) {
Animal aa=new Animal();
animalsay(aa);
Dog dd=new Dog();//Animal dd=new Dog();自动向上转型
animalsay(dd);
/*
Dog dd=(Dog)dd;//强制向上转型
如果想在其中使用狗独有的方法,则需要强制向上转型,因为在上个注释将狗转为动物
*/
}
static void animalsay(Animal aa){
aa.say();
}//运用多态可以调用子类重写的方法
}
class Animal{
public void say(){
System.out.println("叫一声");
}
}
class Dog extends Animal{
public void say(){
System.out.println("哈士奇");
}
}
class Cat extends Animal{
public void say(){
System.out.println("英国短毛猫");
}
}