Java基础入门(上)_基于黑马

java基础笔记

本文主要是记录在学习java阶段自我感觉比较重要而且必备的知识点,不包括一些过于简单的知识点

1.1基本数据类型

数据类型 关键字 内存占用 取值范围(2的次方)
整数类型 byte 1 7次
short 2 15次
int(默认) 4 31次
long 8 63次
浮点类型 float 4 128次
double(默认) 8 1024次
字符类型 char 2 0 ~ 2的16次
布尔类型 boolean 1 true,false

类型转换
在这里插入图片描述

1.2三元运算符

1、需求:动物园里有两只老虎,已知两只老虎的体重分别为180kg、200kg,请用程序实现判断两只老虎的体重是否相同。

//1:定义两个变量用于保存老虎的体重,单位为kg,这里仅仅体现数值即可。
        int w1 = 180;
        int w2 = 200;

        //2:用三元运算符实现老虎体重的判断,体重相同,返回true,否则,返回false。
        boolean b = w2 == w1 ? true : false;
        boolean b1 = w2 > w1 ? true : false;

        //3:输出结果
        System.out.println("b: " + b);
        System.out.println("b1: " + b1);

1.3 switch语句

System.out.println("输入一个月份: ");
        int month = sc.nextInt();
        switch (month) {
   
   
            case 1:
            case 2:
            case 12:
                System.out.println("冬季");
                break;
            case 3:
            case 4:
            case 5:
                System.out.println("春季");
                break;
                
        }

1.4方法

定义

public static void method (int[] nums) {
   
   
// 方法体;
}

//解释:
方法权限 static 返回值类型 方法名 (参数) {
   
   
// 方法体;
}

重载(在同一个类中多个相同名称的方法(只与参数有关))

public class Method {
   
   
    public static float fun(int a) {
   
   
    	//方法体
    }
    public static int fun(int a , int b) {
   
   
    	//方法体
    }
}
//错误
public class Method {
   
   
    public static void fun(int a) {
   
   
    	//方法体
    }
    public static int fun(int a) {
   
   
    	//方法体
    }
}//重载与返回值无关

1.5 递归

递归的注意事项

  • 递归一定要有出口。否则内存溢出
  • 递归虽然有出口,但是递归的次数也不宜过多。否则内存溢出

例子:
用递归求5的阶乘,并把结果在控制台输出

public class test {
   
   
    public static void main(String[] args) {
   
   
        //调用方法
        int result = jc(5);
        //输出结果
        System.out.println("5的阶乘是:" + result);
    }
    
    //定义一个方法,用于递归求阶乘,参数为一个int类型的变量
    public static int jc(int n) {
   
   
        //在方法内部判断该变量的值是否是1
        //出口
        if(n == 1) {
   
   
            //是:返回1
            return 1;
        } else {
   
   
            //不是:返回n*(n-1)!
            return n*jc(n-1);
        }
    }
}

2.面向对象

2.1封装

概述

  • 封装概述是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的 ;
  • 封装原则 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问 成员变量private,提供对应的getXxx()/setXxx()方法 ;
  • 封装好处 通过方法来控制成员变量的操作,提高了代码的安全性 把代码用方法进行封装,提高了代码的复用性;
package java基础;

class Student {
   
   
    //成员变量
    private String name;
    private int age;

    //构造方法
    public Student() {
   
   
        //无参方法
    }

    public Student(String name, int age) {
   
   
        this.name = name;
        this.age = age;
    }

    public String getName() {
   
   
        return name;
    }

    public void setName(String name) {
   
   
        this.name = name;
    }

    public int getAge() {
   
   
        return age;
    }

    public void setAge(int age) {
   
   
        this.age = age;
    }

    public void show() {
   
   
        System.out.println(name + "," + age);
    }




}

public class 封装 {
   
   
    public static void main(String[] args) {
   
   
        //    创建对象并为其成员变量赋值的两种方式
        
        //    1:无参构造方法创建对象后使用setXxx()赋值
        Student stu1 = new Student();
        stu1.setAge(28);
        stu1.setName("林冲");
        stu1.show();
        
        //    2:使用带参构造方法直接创建带有属性值的对象
        Student stu2 = new Student("林冲", 28);
        stu2.show();
        
    }
}

2.2继承

1.概念/特点

继承可以让类与类之间产生关系,子父类关系,产生子父类后,子类则可以使用父类中非私有的成员。

  • 实现继承的格式

    • 继承通过extends实现
      class Dog extends Animal { }
  • 继承的好处

    • 提高了代码的复用性(多个类相同的成员可以放到同一个类中)
      提高了代码的维护性(如果方法的代码需要修改,修改一处即可)
  • 继承的坏处

    • 继承让类与类之间产生了关系,类的耦合性增强了,当父类发生变化时子类实现也不得不跟着变化,削弱了子类的独立性
  • 继承的应用场景

    • is…a的关系:谁是谁的一种,例如:老师和学生是人的一种,那人就是父类,学生和老师就是子类
      2.访问特点
      在子类方法中访问一个变量,采用的是就近原则。
  • 子类局部范围找

  • 子类成员范围找

  • 父类成员范围找

  • 如果都没有就报错(不考虑父亲的父亲…)

3.super关键字

this和super的使用分别

  • 成员变量:
    • this.成员变量 - 访问本类成员变量
    • super.成员变量 - 访问父类成员变量
  • 成员方法:
    • this.成员方法 - 访问本类成员方法
    • super.成员方法 - 访问父类成员方法
  • 构造方法:
    • this(…) - 访问本类构造方法
    • super(…) - 访问父类构造方法

4.方法重写
概念
子类出现了和父类中一模一样的方法声明(方法名一样,参数列表也必须一样)

当子类需要父

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值