zoukankan      html  css  js  c++  java
  • Java面向对象——类和对象

    类(Class)和对象(Object)是面向对象的和兴概念

    • 类是对一类事务的描述,是抽象的、概念上的定义
    • 对象是诗句存在的该类事务的每个个体,因而也称为实例

    可以理解为:=抽象概念的人;对象=实实在在的某个人

    面向对象程序设计的重点是类的设计,类的设计,其实就是类的成员的设计

    1.类的成员

    • 属性:对应类中的成员变量
    • 行为:对应类中的成员方法

     一个Person类,包含属性和方法:

    package com.xlx.java;
    
    public class HelloWorld {
        public static void main(String[] args) {
            System.out.println("Hello,Java!");
            
    //        1.创建Person类的对象
            Person p1=new Person();
    //        2.调用属性
            p1.name="张三";
            p1.age=12;
            System.out.println(p1.name+"的年纪是:"+p1.age);
    //        3.调用方法
            p1.eat();
            p1.talk("Chinese");
        }
    }
    
    class Person{
    //    属性
        String name;
        int age;
        boolean isMale;
        
    //    方法
        public void eat() {
            System.out.println("人可以吃饭");
        }
        
        public void sleep() {
            System.out.println("人可以睡觉");
        }
        
        public void talk(String lang) {
            System.out.println("人可以说话,使用的语言是:"+lang);
        }
    }
    • 如果创建了一个类的多个对象,每个对象都独立的拥有这个类的属性(非Static),意味着如果我们一个对象的属性A,则不影响另外一个对象的属性A的值
    • 如果new一个对象等于一个已经创建了的对象,则修改该对象的值,会改变原对象的值(地址赋值)

    1.属性

    属性与局部变量的对比:
    1.不同点
    (1)在类中声明的位置的不同
    • 属性:直接定义在类的一对{}中
    • 局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量
    (2)关于权限修饰符的不同
    • 属性:可以在声明属性时,指明其权限,使用权限修饰符
      • 常用的权限修饰符:private、public、缺省、protected(private String name;)
        • 如:public除了这个类还能用;private除了这个类就不能用,不写默认缺省
    (3)默认初始化值的情况:
    • 属性:类的属性,根据其类型,都有默认初始化值
      • 整型(byte,short,int,long)——0
      • 浮点型(float,double)——0.0
      • 字符型(char)——0或'u0000'
      • 布尔型——false
      • 引用数据类型(类、数组、接口)——null
    • 局部变量:没有默认初始化值
      • 这意味着,我们在调用局部变量之前,一定要显示赋值
      • 特殊:形参(局部变量)在调用时,我们赋值即可
    (4)内存中加载的位置
    • 属性:加载到堆空间中
    • 局部变量:加载到栈空间中
    2.相同点
    • 定义变量的格式:数据类型 变量名 = 变量值
    • 先声明后使用
    • 变量都有其对应的作用域

    2.方法:用来描述类应该有的功能

    (1)声明:权限修饰符 返回值类型 方法名(形参列表){ 方法体 }

    声明一个类:

    package com.xlx.java;
    
    public class Customer {
    
    }
    
    class CustomerC{
    //    属性
        String name;
        int age;
        boolean isMale;
        
    //    方法
        public void eat() {  // 没形参没返回值
            System.out.println("吃饭");
        }
        
        public void sleep(int hour) {  //有形参没返回值
            System.out.println("休息了"+hour+"个小时");
        }
        
        public String getName(){    //没形参有返回值
            return name;
        }
        
        public String getNation(String nation) {    // 有形参有返回值
            String info="我的国家是"+nation;
            return info;
        }
    }

    说明:

    1. 关于权限修饰符:默认的public
      1. Java规定的四种权限修饰符:private、public、缺省、protected
    2. 返回值类型:有返回值 VS 没有返回值
      1. 如果方法有返回值,则必须在方法声明时,指定返回值的类型,同时,方法中需要使用return关键字返回指定类型的变量或者常量
      2. 如果方法没有返回值,则方法声明时,使用void来表示。通常,没有返回值的方法中,就不用使用return,但是,如果用的话,只能 return; 表示返回
      3. return后不可声明表达式
    3. 形参列表:方法可以声明0个,1个,或多个形参。
      1. 格式:数据类型1 形参1,数据类型2 形参2,...
    4. 方法使用中,可以调用当前类的属性和方法。
    5. 方法中不可以定义一个方法
  • 相关阅读:
    docker镜像制作及上传到远端镜像仓库
    mysql索引进阶
    电子商务需要用到香港服务器吗?
    golang module goland 配置代理
    nginx做linux服务时,日志有权限提示没权限(nginx: [emerg] open() "/home/www/log/error.log" failed)
    Yaml 、Json 、Dict 之间的转化
    CodeSmith .NET三层架构模板
    C#获取26个英文字母
    基于PCASClass.js和layui.js的城市三级联动
    MySQL变量的使用
  • 原文地址:https://www.cnblogs.com/codexlx/p/13514970.html
Copyright © 2011-2022 走看看