Java基础

基础

数据类型

基本数据类型

请添加图片描述

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

声明

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

请添加图片描述

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

请添加图片描述

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

方法

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

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

请添加图片描述

优化:
请添加图片描述

面向对象

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

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();
注意事项
  • 类名要首字母大写+驼峰
  • 一个Java文件可以定义多个class类,但是只有一个类是public修饰,且public修饰的类名必须成为文件名。
  • 成员变量的完整定义格式为
// 修饰符 数据类型 变量名 = 初始值
// 通常我们不会赋初始值,会自动有默认值
byte short int long 0
double float        0.0
boolean             false
String等引用类型      null
内存机制

请添加图片描述

  • 对象放在堆内存中
  • 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;
    }
}
成员变量和局部变量区别

成员变量

public class User {
    private String name;
    private double height;
}

局部变量

public class User {
    public static void main(String[] args) {
		double score = 100;
    }
}
区别成员变量局部变量
类中位置不同类中,方法外常见于方法中
初始化值不同有默认值,无需初始化没有默认值,使用前要先赋值
内存位置不同堆内存栈内存
生命周期不同随着对象创建而存在,随对象消失而消失随着方法调用而存在,随着方法结束而消失
作用域在归属的大括号中
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会飞的战斗鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值