zoukankan      html  css  js  c++  java
  • day16 面向对象知识补充 构造器

    package com.atguigu.java1;
    /*
    * 类的结构之三:构造器(或构造方法、constructor)的使用             别把构造器误认为是方法的一种,它是一种独立的结构
    * construct:建设、建造。 construction:CCB constructor:建设者
    *
    * 一、构造器的作用:
    * 1.创建对象
    * 2.初始化对象的信息  比如给属性初始化。。。。。。
    *
    * 二、说明:
    * 1.如果没有显式的定义类的构造器的话,则系统默认提供一个空参的构造器
    * 2.定义构造器的格式:权限修饰符 类名(形参列表){}
    * 3.一个类中定义的多个构造器,彼此构成重载
    * 4.一旦我们显式的定义了类的构造器之后,系统就不再提供默认的空参构造器,so不能把下面的空参构造器注释掉,除非把所有显式构造器注释掉。
    * 5.一个类中,至少会有一个构造器。
    */
    public class PersonTest {
    public static void main(String[] args) {
    //创建类的对象:new + 构造器      Person()就是构造器
    Person p = new Person();

    p.eat();

    Person p1 = new Person("Tom");

    System.out.println(p1.name);


    }
    }

    class Person{
    //属性
    String name;
    int age;

    //构造器
    public Person(){
    System.out.println("Person().....");
    }

    public Person(String n){               //给name属性初始化
    name = n;

    }
    //
    public Person(String n,int a){
    name = n;
    age = a;
    }


    //方法
    public void eat(){
    System.out.println("人吃饭");
    }

    public void study(){
    System.out.println("人可以学习");
    }

    }

    构造器使用细节说明:

    /*
    * 1.创建程序,在其中定义两个类:Person和PersonTest类。定义如下:
    * 用setAge()设置人的合法年龄(0~130),用getAge()返回人的年龄。
    *
    * 2.练习2:
    * 2.1. 在前面定义的Person类中添加构造器,利用构造器设置所有人的age属性初始值都为18。
    * 2.2. 修改上题中类和构造器,增加name属性,使得每次创建Person对象的同时初始化对象的age属性值和name属性值。

    *
    */
    public class Person {

    private int age;
    private String name;

    public Person(){
    age = 18;
    }

    public Person(String n,int a){
    name = n;
    age = a;
    }


    public void setAge(int a){
    if(a < 0 || a > 130){
    // throw new RuntimeException("传入的数据非法!");
    System.out.println("传入的数据非法!");
    return;
    }

    age = a;

    }

    public int getAge(){
    return age;
    }

    //绝对不要这样写!!
    // public int doAge(int a){
    // age = a;
    // return age;
    // }

    public void setName(String n){
    name = n;
    }
    public String getName(){
    return name;
    }

    }

    /*
    * 在PersonTest类中实例化Person类的对象b,
    * 调用setAge()和getAge()方法,体会Java的封装性。
    *
    */
    public class PersonTest {
    public static void main(String[] args) {

    Person p1 = new Person();
    // p1.age = 1;编译不通过

    p1.setAge(12);

    System.out.println("年龄为:" + p1.getAge());

    // p1.doAge(122);


    Person p2 = new Person("Tom", 21);
    System.out.println("name = " + p2.getName() + ",age = " + p2.getAge());

    }
    }

  • 相关阅读:
    hadoop再次集群搭建(3)-如何选择相应的hadoop版本
    48. Rotate Image
    352. Data Stream as Disjoint Interval
    163. Missing Ranges
    228. Summary Ranges
    147. Insertion Sort List
    324. Wiggle Sort II
    215. Kth Largest Element in an Array
    快速排序
    280. Wiggle Sort
  • 原文地址:https://www.cnblogs.com/wangyanbin2333/p/13463219.html
Copyright © 2011-2022 走看看