Java学习(一)

Java学习(一),第1张

基础知识
  1. 数据类型:
    基本类型:byte 1、short 2、int 4、long 8、float 4、double 8、char 2、boolean 1(后面是字节数)
    引用类型:数组、类、接口、Lambda(除基本以外的)

  2. 字符串:用String定义;支持用运算符”+“进行拼接。

  3. 引用类型的使用规则:

    导包:import 包路径名–>创建:数据类型 变量名称 = 数据类型();–>使用:变量名称.方法名();

  4. 数据输入:

    Scanner使用的基本步骤:

    • 导包

      import java,util.Scanner;
      //导包的动作必须出现在类class定义的上边
      
    • 创建对象

      Scanner sc = new Scanner(System.in);
      //上面这个格式里面,只有sc是变量名可以变,其他都不允许变
      
    • 接收数据

      int i = sc.nextInt();
      //上面这个格式里面,只有i是变量名可以变,其他都不允许变
      
  5. 数组:定义+初始化

    //初始化的两种方式
    
    //动态初始化:指定数组长度
    数据类型[] 数组名称 = new 数据类型[数组长度];
    
    //静态初始化:指定数组内容
    数据类型[] 数组名称 = new 数据类型[] {元素1,元素2,...};//也可分成两步
    	//简便格式:数据类型[] 数组名称 = {元素1,元素2,...};
    
    //访问数组
    System.out.println(array); //直接打印数组名称,输出16进制的地址值的哈希值
    System.out.println(array[0]); //打印第0号元素
    
    //获取数组长度
    System.out.println(array.length);
    
  6. Java内存分配
    1.栈(Stack):主要用来存放局部变量。

    2.堆(Heap):凡是new出来的东西,都在堆当中。堆当中的数据有默认值规则:
    a)如果是整数,默认是0;
    b)如果是浮点数,默认是0.0;
    c)如果是字符,默认是’\u0000’ (Unicode 写法);
    d)如果是布尔值,默认为false ;
    e)如果是引用类型(包含字符串)默认为null(空常量)。

    3.方法区(Method Area)︰存放与class相关的信息。

    4.本地方法区(Native Method Area):与 *** 作系统相关。

    5.寄存器(pc Register): 与CPU相关,性能极高。

  7. Java中的方法(Method)即其他语言中的函数(Function):

    //定义一个方法的格式:
    修饰符 返回值类型 方法名称(参数类型 参数名称){ //修饰符:目前为public static
        方法体
        return 返回值; //返回值只能有0个或1个
    }
    
  8. 方法的重载(Overload)技术:对于类似功能的多个方法,只要记住一个相同的方法名即可。可以根据参数列表的不同自动适配。方法的名称相同,但参数列表不同。

    参数列表相同的情况下,方法名称不同相同(即要重载的方法名称相同)

    e.g.
    ...
    {
    	System.out.println(sum(10,20)); 
    }
    
    public static int sum(int a, int b){
    	System.out.println("有2个int参数的方法执行! ");
    	return a + b;
    }
    public static int sum(int a, int b, int c){
    	System.out.println("有3个int参数的方法执行! ");
    	return a + b + c;
    }
    public static int sum(int a, int b, int c, int d) {
    	System.out.println("有4个int参数的方法执行!");
        return a + b + c + d;
    }
    

    参数列表不同:参数的个数不同 或 参数的类型不同 或 参数的多类型顺序不同。

    重载与返回值类型无关,与参数的名称无关。

  9. 参数传递的过程中,有两项规则:

    对于基本数据类型(以及String)来说,形式参数的 *** 作【不会】影响实际参数

    对于引用数据类型(除了String)来说,形式参数的 *** 作【会】影响实际参数。

面向对象 OOP
  1. 类与对象的关系:

    属性:事物的特征描述信息,“是什么”。

    行为:事物的能功行动方案,“能做什么”。

    面向对象的语言当中,"类"就是用来模拟现实事物的。类中也有属性、行为两个组成部分,而“对象"是类的具体实例。

    例如:类∶抽象的,是一张"手机设计图";对象:具体的,是一个“真正的手机"。"

  2. 类的定义:

    类是用来模拟现实事物的代码手段,事物分成属性、行为两个部分,类当中也对应地包含两个部分:

    1.成员变量(属性):将变量位置直接定义在类中,在方法外,即为成员变量。

    2.成员方法(行为):将普通的方法去掉static关键字,即为成员方法。

  3. 一个类通常情况下无法直接使用,类似于手机设计图不能直接打电话。如果要想使用这个类,通常都需要根据类创建一个真正的对象来使用。类似于根据设计图来创造一个真正的手机才能用。

    //根据类创建对象的格式:
    类名称 对象名 = new 类名称();
    
    //使用对象当中的成员变量格式:
    对象名.成员变量名
        
    //使用对象当中的成员方法格式:
    对象名.成员方法名(参数);//若无参数则为空 
    
  4. private关键字用法:

    在成员变量定义前加private,外部使用这个类时就不能改变该成员变量的值;可以间接访问:

    为这个成员变量编写Setter(pubilc void setAge(int num){})和Getter(public int getAge(){})方法。(专门定义了一个成员方法来设置或获取成员变量的数据)

    privat可以对成员变量的值进行限制,保持其在固定取值范围内。

  5. this关键字用法:

    当局部变量和成员变量重名的时候,方法当中会根据就近原则使用局部变量。如果希望区分一下,就需要使用格式:this.成员变量名

    this关键字的经典作用:将重名的成员变量和局部变量区分开,只在成员变量前加this

    通过谁调用的方法,谁就是this

  6. 构造方法(Constructor)

    构造方法就是就专门用来创建对象的方法。当通过new关键字创建对象时,其实就是在调用构造方法。

    //定义一个构造方法的格式:
    public 构造方法名 (参数类型 参数名称){
    	方法体
    	//return; 	//通常最后一行return省略不写
    } 
    ```
    

    调用构造方法的格式就是创建对象的格式:new 类名称()

    注意:
    1、构造方法不能写返回值类型,连void都不能写。

    2、构造方法的名称必须和所在的类名称完全一样,连大小写也要一样。

    3、构造方法也是可以进行重载(Overload):

    4、构造方法如果没有自定义,那么将会默认赠送一个。如果自定义了至少一个,那么就不再赠送默认的。

  7. 定义一个“标准的类”:
    1、所有的成员变量都雾要使用private关键字私有化。

    2、为每一个成员变量编写一对儿Getter Setter方法。

    3、编写一个无参数的构造方法。

    4、编写一个全参数的构造方法。

    POJO:Plain Old Java object标准××类

    e.g.
    public class Student {
      
      //成员变量
      private String name;
      private int age;
      //无参数的构造方法
      public Student() {
     }
      //有参数的构造方法
      public Student(String name, int age) {
        this.name = name;
        this.age = age;
     }
      //成员方法
      public void setName(String name) {
        this.name = name;
     }
      public String getName() {
        return name;
     }
      public void setAge(int age) {
        this.age = age;
     }
      public int getAge() {
        return age;
     }
      public void show() {
        System.out.println(name + "," + age);
     }
    }
    /*
      创建对象并为其成员变量赋值的两种方式
        1:无参构造方法创建对象后使用setXxx()赋值
        2:使用带参构造方法直接创建带有属性值的对象
    */
    public class StudentDemo {
      public static void main(String[] args) {
        //无参构造方法创建对象后使用setXxx()赋值
        Student s1 = new Student();
        s1.setName("林青霞");
        s1.setAge(30);
        s1.show();
        //使用带参构造方法直接创建带有属性值的对象
         Student s2 = new Student("林青霞",30);
        s2.show();
     }
    }
    

    对于所有的数据类型,Getter都必须叫getXxx,Setter都必须叫setXxx,但是有一个特例:如果是基本数据类型当中的boolean值,那么setXxx规则不变,而getXxx需要写成isXxx的形式。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/725662.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存