• Java基础


    基础

    数据类型

    基本数据类型

    请添加图片描述

    // 如果希望一个字面量被当作long类型,需加L/l,否则默认int
    long a = 123456789789789L;
    // 同理,想要float要在最后加F/f,否则默认double
    float b = 98.5F; 
    
    • 1
    • 2
    • 3
    • 4
    引用数据类型
    数组

    声明

    int[] arr = {12,24};
    int[] arr = new int[3]; // 初始化为0
    
    • 1
    • 2
    自动类型转换
    • 类型范围小的变量可以直接赋值类型范围大的变量

    请添加图片描述

    • 在表达式中,小范围的数据类型变量会自动转换当前范围较大的类型,即表达式的最终结果由表达式中的最高类型决定;在表达式中,byte、short、char是直接转换成int参与运算的

    请添加图片描述

    • 大范围赋值给小范围的强制类型转换
    int a = 20;
    byte b = (byte)a;
    
    • 1
    • 2

    方法

    修饰符 返回值类型 方法名(形参列表){ // 无返回值为void
    	方法体代码
    	return 返回值;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 参数为值传递:不会修改原值
    • 参数为引用传递:传递的是地址,会改变原值(类、接口、数组、字符串、包装类)
    方法重载

    同一个类中,出现多个方法名称相同,但是形参列表不同的,就是方法重载(为同一个方法指定多种参数模式)

    请添加图片描述

    优化:
    请添加图片描述

    面向对象

    面向对象的三大特征:封装、继承、多态

    public class 类名{
    	1.成员变量
    	2.成员方法
    	3.构造器
    	4.代码块
    	5.内部类
    }
    
    public class Car{
        // 属性(成员变量)
        String name;
        double price;
        
        //行为(方法)
        public void start(){
            System.out.println(name + "启动");
        }
        public void run(){
            System.out.println("价格" + price);
        }   
    }
    // 调用
    // 类 变量名称 = new 构造器;
    Car c = new Car();
    c.name = "car";
    c.start();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    注意事项
    • 类名要首字母大写+驼峰
    • 一个Java文件可以定义多个class类,但是只有一个类是public修饰,且public修饰的类名必须成为文件名。
    • 成员变量的完整定义格式为
    // 修饰符 数据类型 变量名 = 初始值
    // 通常我们不会赋初始值,会自动有默认值
    byte short int long 0
    double float        0.0
    boolean             false
    String等引用类型      null
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    内存机制

    请添加图片描述

    • 对象放在堆内存中
    • Car c = new Car();c变量中存储的是对象地址
    • 成员变量在堆内存中,方法在方法区中
    构造器

    定义在类中,可以用于初始化一个类的对象,并返回对象的地址

    new Car()中的Car()就是一个构造器

    this关键字

    可以出现在构造器、方法中;代表当前对象的地址(对象或方法中的this都指向对象地址)

    封装

    对象代表什么,就得封装对应的数据,并提供数据对应的行为

    例如人画圆,创建一个人对象、创建一个圆对象、其中画圆这个方法,应该封装到圆对象中

    • 一般建议对成员变量使用private关键字修饰
    • 为每个成员变量提供public修饰的getter和setter方法暴露其取值和赋值

    请添加图片描述

    javabean格式
    • 成员变量使用private修饰
    • 提供成员变量对应的setter和getter
    • 必须提供一个无参构造器;有参构造器可写可不写
    public class User {
        // 1.私有变量
        private String name;
        private double height;
    
        // 3.要求提供无参构造器,有参构造器可选
        public User() {
        }
    
        public User(String name, double height, double salary) {
            this.name = name;
            this.height = height;
        }
    
        // 2.提供getter和setter方法
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public double getHeight() {
            return height;
        }
    
        public void setHeight(double height) {
            this.height = height;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    成员变量和局部变量区别

    成员变量

    public class User {
        private String name;
        private double height;
    }
    
    • 1
    • 2
    • 3
    • 4

    局部变量

    public class User {
        public static void main(String[] args) {
    		double score = 100;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    区别成员变量局部变量
    类中位置不同类中,方法外常见于方法中
    初始化值不同有默认值,无需初始化没有默认值,使用前要先赋值
    内存位置不同堆内存栈内存
    生命周期不同随着对象创建而存在,随对象消失而消失随着方法调用而存在,随着方法结束而消失
    作用域在归属的大括号中
  • 相关阅读:
    Unity基于EventSystem让SpriteRenderer支持点击事件
    python的小作业
    2022-11-08 C++并发编程( 四十 )
    python从入门到实践:python常用模块
    Proxy代理配置解析
    卷积神经网络 CNN
    【汇编语言-王爽】第二章:寄存器
    HttpUtil
    Swift 如何从图片数据(Data)检测原图片类型?
    树莓派——舵机
  • 原文地址:https://blog.csdn.net/qq_47234456/article/details/128191601