java面向对象1

面向对象的三大特征:

1.封装(Encapsulation)对外部不可见

2.继承(Inheritance)扩展类的功能

3.多态(Polymorphism) 方法的重载            方法的多态性

 

对象的创建:

类名  a=new 类名()

public class MethodTest01 {
    public static void main(String[] args) {
        Person p=new Person("xiaoming",12);
        Person p1=new Person();
        p1.age=14;
        p1.name="xiaozhang";
        System.out.println(p.toString());
        System.out.println(p1.toString());
    }

}
class Person{
    String name;
    int age;
    
    public Person(){
        
    }
    
    public Person(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Person [name=" + name + ", age=" + age + "]";
    }
    
}

有一个无参构造器,一个有参构造器,分别实例化了对象并赋值。

 

辣鸡的产生:

某些存放在内存空间的变量值不被引用了,他们就成了辣鸡。

 

封装:

封装的目的就是保护,为了使某些属性和方法不被外部看到。

public class MethodTest02 {
    public static void main(String[] args) {
        Person1 p1=new Person1();
        p1.setAge(12);
        p1.setName("xiaoming");
        System.out.println(p1.toString());
    }

}

class Person1{
    private String name;
    private int age;
    public Person1() {
        
    }
    public Person1(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Person [name=" + name + ", age=" + age + "]";
    }
    
    
}

通过set和get方法赋值和取值。另外我们可以在set方法中添加条件来限制输入的值。

一个小栗子

public class MethodTest03 {
    public static void main(String[] args) {
        Student s=new Student();
        s.setMath(90);
        s.setYuwen(95);
        s.setEnglish(100);
        s.setName("xiaoming");
        s.setNum(23);
        s.all_score();
        s.avg();
        System.out.println(s.toString());
    }

}

class Student{
    private int num;
    private String name;
    private int math;
    private int yuwen;
    private int english;
    private int score;
    private double avg;
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getMath() {
        return math;
    }
    public void setMath(int math) {
        this.math = math;
    }
    public int getYuwen() {
        return yuwen;
    }
    public void setYuwen(int yuwen) {
        this.yuwen = yuwen;
    }
    public int getEnglish() {
        return english;
    }
    public void setEnglish(int english) {
        this.english = english;
    }    
    public void all_score() {
        this.score= math+yuwen+english;
    }
    public void avg() {
        this.avg=(math+yuwen+english)/3;
    }
    @Override
    public String toString() {
        return "Student [num=" + num + ", name=" + name + ", math=" + math + ", yuwen=" + yuwen + ", english=" + english
                + ", score=" + score + ", avg=" + avg + "]";
    }
    
}

 

posted @ 2020-11-04 14:58  yuanzhinv01  阅读(95)  评论(0)    收藏  举报