面向对象

什么是面向对象

以类的方式组织代码,以对象的组织(封装)数据

封装 - 继承 - 多态

对象-具体 —— 类-抽象

设计:先有多个对象,再将对象共性抽象成类

代码:先有抽象类,再new具体对象 --先造模子然后就可以随意印姜饼人

关于对象的值传递

  • 对于基本类型的实参 int/String 等 方法通过值传递不直接修改实参本身
//值传递
public class Demo02 {
    public static void main(String[] args) {
        int a = 1;

        System.out.println(a);  //1
        Demo02.change(a);
        System.out.println(a);  //1
        //change()方法并没有作用于实参a上,只有a的值作为形参传入方法中

    }

    public static void change(int a){
        a = 10;
    }
}
  • 对于由类new出的对象,方法也是值传递,但形参指向具体对象,可以修改对象的属性
//引用传递,本质还是值传递,Java只有值传递 -- 在于对象+内存
public class Demo03 {
    public static void main(String[] args) {
        //new一个Person对象
        Person person = new Person();

        System.out.println(person.name);//null 默认初始化
        Demo03.change(person);
        System.out.println(person.name);//Ashen 修改成功

    }

    public static void change(Person person){
        person.name = "Ashen";
        //此处的person是一个对象:指向-->Person person = new Person();
        //是具体的人,可以改变属性
    }
}

//定义一个Person类,赋予一个属性name
class Person{
    String name;
}

类的构造器

无参构造器默认为隐式定义,也可显示定义

当显示定义一个有参构造器后,相应类的无参构造器必须也显示定义

定义Person类

public class Person {
    //一个类 一定存在一个与类名同名的方法 Person() --> 构造器
    //快捷键alt+insert可快速生成构造器
    //1.方法名与类名相同  2.无任何返回值

    public Person(){   //显示定义无参构造
        //作用1:使用new关键字,本质是在调用构造器
        //作用2:初始化对象的属性
        this.name = "zz";
    }

    //一旦定义有参构造,无参构造必须显示定义
    public Person(String name){ //有参构造
        this.name = name;
    }
    public Person(String name, int age){
        this.name = name;
        this.age = age;
    }

    String name;
    int age;

}

实例化Person类

public class Application {
    public static void main(String[] args) {

        //new 实例化一个对象
        Person person = new Person();

        System.out.println(person.name); //zz

        Person Wu = new Person("zxc");
        System.out.println(Wu.name);  //zxc
    }
}
posted @   LaViez  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示