Java----匿名对象、封装、构造方法

匿名对象

:没有名字的对象
* 匿名对象的好处:节省代码,使用方便
* 用处:当你只调用一个方法的时候使用,如果要反复调用一个方法,用匿名对象会比较浪费内存的空间

ublic class PersonDemo {
    //赋值name,调用sayhi方法
    public static void fun(Body p,String name) 
    {
        p.name = name;
        p.sayHi();
    }
  public static void main(String[] args) {
    Body p1 = new Body();
    Body p2 = new Body();
    p1.name = "haha";
    p2.name = "hehe";
    p1.sayHi();
    p2.sayHi();
    //相同的语句可以抽成一个方法,增加代码的复用性
    new Body();//匿名对象
    new Body().sayHi();//匿名对象调用方法
    fun(new Body(), "张三");
}

}
class Body{
    String name;
    int age;
    //介绍自己的方法
    public void sayHi() 
    {
        System.out.println("我叫"+name+",我今年"+age);
    }
}

封装

:把属性和方法的具体实现隐藏,开放公共访问的方法,成员变量私有化是封装的一种表现形式
* 私有化之后一定要写set 和 get方法
* private系统的关键字(也可以叫做权限修饰符),该属性添加了private关键字就变成私有的属性了,私有属性本类中可以访问,本类以外不能访问
* 如何访问private修饰的成员变量?
* 在私有属性所在的函数中写获取和修改值的函数,set和get方法

public static void main(String[] args)
  {
    Phone phone = new Phone();
    phone.setName("iphoneX");
    phone.color = "黑色";
    phone.sayHi();
    System.out.println("名字是"+phone.getName());
  }
}
class Phone{
    private String name = "iphone";//private系统关键字将变量的属性私有化,成员变量私有化
    String color;
    public void sayHi()
    {
        System.out.println(name + "----" + color);
    }
    //在本类中写一个方法来修改属性
    //修改值的时候,一般用方法名set,获取值的时候,一般用方法名get
    //修改属性的值
    public void setName(String name)
    {
      this.name = name;// this关键字:代表本类的对象.this.name获取的就是成员变量的name
    }
    //获取变量
    public String getName()
    {
        return this.name;
    }
    //就近原则
    public  void fun()
    {
        System.out.println(name);
        String name = "vivo";
        //就近原则
        System.out.println(name);
    }

构造方法

  • 作用:对对象的属性(成员变量)进行初始化
  • 写法:
  • 1.构造方法的方法名与类名完全相同(大小写必须一样)
  • 2.没有返回值类型(连void都不写)
  • 3.没有返回值(没有return)
public static void main(String[] args)
{
    Person person = new Person("小明","男");//初始化对象的时候,系统会自动调用person类的构造函数,无法自己来调用构造方法(不能使用对象.方法)
    person.sayHi();
    //初始化时,类名后面的括号中如果有参数,则说明类的构造方法中可以调入值,有参数的构造方法
    Person p1 = new Person("王五", "男");//有参数的构造方法
    p1.sayHi();
}
}
class Person
{
    String name;
    String gender;
    public void sayHi()
    {
        System.out.println("我叫"+name+",性别是"+gender);
    }
    //构造方法,构造方法是系统自己调用的
    public Person(String name,String gender)
    {
        //给对象的成员变量赋值
        this.name = name;
        this.gender = gender;
        System.out.println("我是一个构造方法");
    }
    //构造方法,无参数
    public  Person()
    {
        this.name = "zhangsan";
        this.gender = "nan";
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值