zoukankan      html  css  js  c++  java
  • Java(五)——面向对象(1)-基础

    面向对象

    一、自定义类

    public class 类名{
        修饰符 数据类型 变量名 = 值;
        
        修饰符 返回值类型 方法名(参数列表){
            ...
        }
    }
    
    public class Person{
        private String name = "tom";
        
        public String setName(String name){
            this.name = name;
        }
    }
    
    • 使用private修饰符,外部就无法直接操作类中成员变量

    • 可以通过在类中定义方法,setXXX()getXXX()来设置、获取成员变量

    • public方法定义的属性,外部可以直接访问。

    • private方法不允许外部调用

    • 可以使用一个隐含的变量this,它始终指向当前实例。因此,通过this.field就可以访问当前实例的字段。

      如果没有命名冲突,可以省略this

    二、构造方法

    构造方法是如此特殊,所以构造方法的名称就是类名。构造方法的参数没有限制,在方法内部,也可以编写任意语句。但是,和普通方法相比,构造方法没有返回值(也没有void),调用构造方法,必须用new操作符。

    注意:

    • 在未自定义构造方法时,自动创建构造默认方法public 类名(){},并调用该构造方法
    • 一旦自定义了构造方法,就不会创建默认构造方法
    • 可以定义多个构造方法,编译器根据参数自动判断调用哪一个构造方法
    • 可以在一个构造方法内部调用另一个构造方法,this(参数列表)
    public class Person{
        private String name;   // 引用类型的字段默认是null
        private int age;   // 数值类型的字段用默认值
        
        // 由于自定义了有参构造方法,编译器不会自动创建无参构造方法,所以必须手动创建无参构造方法
        public Person(){
            
        }    
        
        // 构造方法,方法名和类名相同。在new对象的时候,为对象赋初始值
        public Person(String name, int age){
            this.name = name;
            this.age = age;
        }
        
        // 构造方法间的互相调用
        public Person(String name){
            this(name,18)
        }
    }
    
    public class Main{
        public static void main(String[] args){
            Person p1 = new Person();    // 调用无参构造方法,初始化成员变量
    		Person p2 = new Person('tom',18);   // 调用有参构造方法,初始化成员变量
        }
    }
    
    

    创建对象实例所干事情

    1. 先初始化字段,例如,int age = 10;表示字段初始化为10double salary;表示字段默认初始化为0String name;表示引用类型字段默认初始化为null
    2. 执行构造方法的代码进行初始化。

    三、方法重载

    定义多个方法时,如果它们的功能都是类似的,只有参数有所不同,那么,可以把这一组方法名做成同名方法,

    这种方法名相同,但各自的参数不同,称为方法重载。

    public class Person{
        public void eat(){
            System.out.print("吃饭")
        }
        
        public void eat(String food){
            System.out.print("吃" + food)
        }
    }
    
  • 相关阅读:
    mysql自动增长的有关问题,怎么恢复从1开始
    java攻城狮之路--复习JDBC
    读书笔记:《写给大家看的面向对象设计》,《程序员的职业素养》,《设计模式其实很简单》
    《浪潮之巅,第二版》,《黑客与画家》,《暗时间》读后感
    查看SharePoint文档库是,显示层次目录,可以点击返回层次
    浪潮之巅 -- 读后感与杂谈
    InfoPath分别定义New/Edit 表单
    SharePoint js操作原生的New/Edit表单
    nodejs中req.body为空的问题
    请求uniRequest,会请求两次
  • 原文地址:https://www.cnblogs.com/linagcheng/p/12166758.html
Copyright © 2011-2022 走看看