zoukankan      html  css  js  c++  java
  • 7_类和对象

    面向对象的概念

    • 万物皆对象。

    • 面向对象指以属性和行为的观点去分析现实生活中的事物。

    • 面向对象编程指先以面向对象的思想进行分析,然后使用面向对象的编程语言进行表达的过程。

    类和对象的概念

    • 对象主要指现实生活中客观存在的实体,在Java语言中对象体现为内存空间的一块存储区域。
    • 类简单来就是“分类”,是对具有相同特征和行为的多个对象共性的抽象描述,在Java语言中体现为一种引用数据类型,里面包含了描述特征/属性的成员变量以及描述行为的成员方法。
    • 类是用于构建对象的模板,对象的数据结构由定义它的类来决定。

    类的定义

    class 类名 {
        类体;
    }
    
    • 通常情况下,当类名由多个单词组成时,要求每个单词首字母都要大写。

    成员变量的定义

    class 类名 {
        数据类型 成员变量名 = 初始值;
    }
    
    • 当成员变量由多个单词组成时,通常要求从第二个单词起每个单词的首字母大写。

    对象的创建

    new 类名();
    
    • 当一个类定义完毕后,可以使用new关键字来创建该类的对象,这个过程叫做类的实例化。
    • 创建对象的本质就是在内存空间的堆区申请一块存储区域,用于存放该对象独有的特征信息。

    引用的定义

    • 基本概念

      • 使用引用数据类型定义的变量叫做引用型变量,简称为“引用”。
      • 引用变量主要用于记录对象在堆区中的内存地址信息,便于下次访问。
    • 语法格式

      • 类名 用于变量名;
        引用变量名.成员变量名
        
      • Person p = new Person;
        p.name = "吕布";
            System.out.println(p.name);
        

    实例

    /*
    	编程实现Person类的定义
    */
    
    public class Person {
        // 数据类型 成员变量名 = 初始值; - 其中,初始值通常省略不写
        String name;	// 用于描述姓名的成员变量
        int age;		// 用于描述年龄的成员变量
        
        public static void main(String[] args) {
            Person p = new Person();
            System.out.println("我是" + p.name + ",今年" + p.age + "岁了!");
            
            p.name = "张飞";
            p.age = 30;
            System.out.println("我是" + p.name + ",今年" + p.age + "岁了!");
        }
    }
    

    /*
    编程实现Person类的定义
    */
    
    public class Point {
        int x;
        int y;
        public static viod main(String[] aargs) {
            Point p = new Point();
            System.out.println("横坐标是:" + p.x + ",纵坐标是:" + p.y);
            
            System.out.println("--------------------");
            
            p.x = 3;
            p.y = 5;
            System.out.println("横坐标是:" + p.x + ",纵坐标是:" + p.y);
        }
    }
    

    成员方法的定义

    class 类名 {
        返回值类型 成员方法名(形参列表){
            成员方法体;
        }
    }
    
    • 当成员方法由多个单词组成时,要求从第二个单词起每个单词的首字母大写。

    返回值类型的详解

    • 返回值主要指从方法体内返回到方法体外的数据类型。
    • 返回值类型主要指返回值的数据类型,可以是基本数据类型,也可以是引用数据类型。
    • 当返回的数据内容是66时,则返回值类型写int即可。
    • 在方法体中使用return关键字可以 返回具体的数据内容并结束当前方法。
    • 当该方法不需要返回任何数据内容时,则返回值类型写void即可。

    形参列表的详解

    • 形式参数主要用于将方法体外的数据内容带入到方法体内部。
    • 形式参数列表主要指多个形式参数组成的列表。

    方法体详解

    • 成员方法体主要用于编写描述该方法功能的语句块。
    • 成员方法可以实现代码的重用

    类中可变长参数的使用

    • 返回值类型 方法名(参数的类型... 参数名)
    • 方法参数部分指定类型的参数个数是可以改变的,也就是0~n个。
    • 一个方法的形参列表中最多只能声明一个可变长形参,并且需要放到参数列表的末尾。
    public class Person {
        String name;
        int age;
        
        void setName(String n) {
            name = n;
        }
        
        void setAge(int a) {
            age = a;
        }
        
        void show() {
            System.out.println("我是" + name + ",今年" + age + "岁了!");
        }
        
        void setNameAge(String n, int a) {
            name = n;
            age = a;
        }
        
        void showArgument(int num, String... args) {
            for (int i = 0; i < args.length; i++) {
                System.out.println("第" + (i +1) + "个参数为:" + args[i]);
            }
        }
        
        public static void main(String[] args) {
            Person p = new Person();
            p.show();
            
            System.out.println("----------------------------");
                
            p.name = "zhangfei";
            p.age = 30;
            p.show();
            
            System.out.println("----------------------------");
            
            
        }
    }
    

    无参有返回值方法

    public class Person {
        String name; 
        int age;
            
        String getName() {
            return name;
        }
        int getAge() {
             return age;
        }
        
        void show() {
            System.out.println("我是" + name + ",今年" + age + "岁了!");
        }
        
        public static viod main (String[] args) {
            String str1 = p.getName();
            System.out.println("获取到的姓名是:" + str1);
            
            int ib = p.getAge();
            System.out.println("获取到的年龄是:" + ib);
        }
    }
    

    方法的传参过程

    参数传递的注意事项

    • 基本数据类型的变量作为方法的参数传递是,形参变量数值的改变通常不会影响到实参变量的数值,因为两个变量有各自独立的内存空间。
    • 引用数据类型的变量作为方法的参数传递是,形参变量指向内容的改变会影响到实参变量指向内容的数值,因为两个变量指向同一块内存空间。
    • 当引用数据类型的变量作为方法的参数传递是,若形参变量改变指向后再改变指定的内容,则通常不会影响到实参变量指向内容的改变,因为两个变量指向不同的内存空间。

  • 相关阅读:
    java的语法基础(二)
    MyBatis 的好处是什么?
    python中字符串的编码和解码
    Spring的简介和优点?
    相对于Statement,PreparedStatement的优点是什么?
    MyBatis 的好处是什么?
    .final finally finalize区别
    final类有什么用
    web广泛用到的技术:
    JDK,JRE,JVM三者的关系
  • 原文地址:https://www.cnblogs.com/haitaoli/p/13720508.html
Copyright © 2011-2022 走看看