• 面向对象-类的构造方法(函数)


             面向对象-类的构造方法(函数)

                                 作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

     

     

     

    一.构造方法概述

      构造方法特点:
        (1)函数名与类名相同
        (2)不用定义返回值类型
        (3)不需要写return语句(没有具体的返回值)
        (4)在对象建立的时候被直接调用
        (5)
    多个构造函数是以重载的形式存在的
      构造方法作用:
        构造函数在对象建立的时候会被直接调用,它一般用作给对象做初始化操作(类似于我们生活中所说的出厂配置)。
    
      类构造方法和普通方法的区别:
        普通方法时用于定义对象应该具备的功能,而构造方法定义的是对象在建立时需要具备的一些内容,也就是对象的初始化内容。
        普通方法在对象建立后需要显式调用才会执行,而构造方法是在对象建立时被调用,为了给对象进行初始化。

    二.this关键字概述

    this的特点:
    this代表其所在函数所属对象的引用,换句话说,this代表类对象的引用。
    
    this的应用常见:
    针对局部变量和成员变量同名的时候。
    
    this关键字在构造函数间的引用:

    三.实战案例

    /**
     * 
     * @author 尹正杰
     *
     */
    public class Person {
        
        private String name;
        private int age;
        
        /*
         * 构造函数细节:
         *     (1)构造函数在对象建立的时候会被直接调用,它一般用作给对象做初始化操作(类似于我们生活中所说的出厂配置);
         *     (2)当类中没有定义构造函数时,JVM会自动给该类加上一个空参数的构造函数,这个是类中默认的构造函数;
         *     (3)在一个类中可以以重载的方式定义多个构造函数,因为重载时构造函数的名称都相同。
         * 
         */
        Person(){
            System.out.println("Person1 正在初始化...");
        }
        
        Person(int age){
            this.age = age;
            System.out.println("Person2 正在初始化...");
        }
        
        /*
         * this关键字在构造函数间调用时只能定义在构造函数的第一行
         */
        Person(String name){
            this(17);
            this.name = name;
            System.out.println("Person3 正在初始化...");
        }
        
        Person(String name,int age){
            this.name = name;
            if(age > 0 && age <= 150) {
                this.age = age;
                System.out.println("Person4 正在初始化...");
            }else {
                System.out.println("年龄非法!");
            }
            
        }
    
        
        public void sayHello() {
            System.out.println("My name is [" + this.getName() + "],and I'm " + this.getAge() + " years old.");
        }
        
        //为私有变量定义getter和setter方法
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(short age) {
            if(age > 0 && age <= 150) {
                this.age = age;
            }else {
                System.out.println("年龄非法!");
            }
            
        }
    
    }
    定义Person类(Person.java)
    /**
     * 
     * @author 尹正杰
     *
     */
    public class PersonDemo {
    
        public static void main(String[] args) {
            String name1 = "Jason Yin";
            String name2 = "尹正杰";
            String name3 = "Jason Yin 最强王者";
            String name4 = "BigData";
            
            short age1 = 28, age2 = 18, age3 = 26,age4 = 16;
            
            Person p1 = new Person();
            p1.setName(name1);
            p1.setAge(age1);
            
            Person p2 = new Person(age2);
            p2.setName(name2);
            p2.setAge(age2);
            
            Person p3 = new Person(name3);
            
            Person p4 = new Person(name4,age4);
            
            p1.sayHello();
            p2.sayHello();
            p3.sayHello();
            p4.sayHello();
            
            
        }
    }

  • 相关阅读:
    WinService12r2系统加固-3389端口与端口安全
    WinService12r2系统加固-账户管理与服务安全
    渗透测试常用工具-stunnel内网穿透
    渗透测试常用工具-ptunnel内网穿透
    报错注入函数
    常见绕过disable_function(抄录)linux系统。windows系统大概只有com组件
    nmap(抄录)
    php回调木马
    NoSql注入小测试。
    日志:记一次网页篡改(从开始到质保)一个渗透工作者的工作之路
  • 原文地址:https://www.cnblogs.com/yinzhengjie2020/p/12231463.html
Copyright © 2020-2023  润新知