寒假学习记录5:Java

目录

        基础语法

                8种数据类型      

                        变量 

                        常量

                        ​​​​​​​字符串

                ​​​​​​​                StringBuilder

                ​​​​​​​        方法(函数)

                ​​​​​​​        输入

                ​​​​​​​        输出

                ​​​​​​​        数组

                ​​​​​​​                二维数组

                面向对象

                        类的定义         

                                创建对象实例

                        final  

                        继承

                        super

                        抽象类

                        接口

                随笔​​​​​​​

基础语法

8种数据类型

        byteshortintlongfloatdoublecharboolean

        byte、short、int、long 四种基本数据类型表示整数

                long类型的使用:long num = 1L;,一般使用大写 L,为了避免小写 l 与数值 1 混淆。

         float 和 double 类型表示浮点数,即可以表示小数部分。

                需要注意的是 float 类型的数值后面需要加上 F 或 f,否则会被当成 double 类型处理。

                double 类型的数值可以加上 D 或 d,也可以不加。

       char 类型用于表示单个字符。

                需要将字符用单引号括起来char a = 'a'或char a = 97或char a = '\u0061'(16进制)。

       boolean 类型用于表示真值 true或者假值 false

                Java 中布尔值不能和整数类型或者其它类型互相转换。

变量 

        int a = 1

常量

         final double PI = 3.14; 加个final就行

字符串

        两种写法

                String 变量名 = "abc";

                String 变量名 = new String("abc");   

        一些方法     

                字符串.length()                                    获取字符串长度

                a字符串.equals(b字符串)                     比较两个字符串是否相同

                a变量.equalsIgnoreCase(b变量)         比较两个字符串是否相同(忽略大小写)

                        注:“==”比较的是两个对象在内存中存储的地址是否一样

                a变量.concat(b变量) 或 "a"+"b";         字符串的连接

                变量.charAt(索引值)                            获取当前字符索引位的单字符

                indexOf(字符)                                      搜索字符第一次出现的索引

                indexOf(字符串)                                   搜索字符串第一次出现的索引

                lastIndexOf(字符)                                 搜索字符最后一次出现的索引

                lastIndexOf(字符串)                              搜索字符串最后一次出现的索引

                substring(索引值)                                 提取从位置索引开始到结束的字符串

                substring(起始索引, 末位索引)             提取索引之间的字符串部分

                trim()                                                    返回一个前后不含任何空格的调用字符串的副本

        StringBuilder

                在Java中,String被认为是不可变的,这意味着一旦创建了一个String对象,你将无法更改它的值,所以可以使用StringBuilder

                StringBuilder a = new StringBuilder(容量长度(整数));

                        如果不写容量长度则默认为16

                        如果写字符串则长度为16+字符串长度

                        如果后续超出容量长度的话会自动扩展

                一些方法 

                        deleteCharAt(索引值)            删除索引位的字符
                        indexOf()                               同上
                        capacity()                               返回当前容量
                        charAt(索引值)                       同上
                        toString()                                返回string类型 

方法(函数)

        public static void functionName(Object arg) {

                System.out.println("Hello World.");

        }

        public:公共访问级别,被声明为public的成员可以在任何地方访问。

        protected:受保护访问级别,被声明为protected的成员可以在同一个包中的任何类中访问,以及被该类的子类访问。

        private:私有访问级别,被声明为private的成员只能在声明它的类中访问。

        省略(default):也称为默认访问级别,默认访问级别是指在成员声明时没有指定任何访问修饰符。只能在同一个包中访问,不能在其他包中访问。

        static:打上static使其可以被调用

输入

        先引入:import java.util.Scanner;

                Scanner in = new Scanner(System.in);

                String a=in.nextLine();

                String b=in.nextLine();

        9大输入方法

                nextBoolean();        接收bool

                nextByte();              接收byte型整数

                nextShort();             接收short型整数

                nextInt();                  接收int型整数

                nextLong();              接收long型整数

                nextFloat();              接收float型整数

                nextDouble();           接收double型整数

                next();                      只可输入不带空格的字符串,读取到空格则停止

                nextLine();                读取一整行输入

        其他方法

                haxNext("字符串")        如果是则返回true,如果不是则返回false

                close()                          关闭输入

输出

        3大输出方法

                System.out.print()           转换成字符串输出

                System.out.println()        输出完成后执行换行

                System.out.printf()          跟C语言输出一样

数组

        两种定义方法

                int [] ages = {12,18,9,33,45,60};

                int [] symbol = new int[10];

                注:int [] a1 = {1,2,3};
                        int [] a2;
                        a2 = a1;

                        此时a2和a1为同一个数组,只是为a1多赋了一个引用,a2只是a1数组的不同名称

        二维数组

                两种定义方法

                        数据类型 [][] 数组名 = new 数据类型[行的个数][列的个数];

                        数据类型 [][] 数组名 = {
                                                {第一行值1,第一行值2,...}
                                                {第二行值1,第二行值2,...}  
                                        }

面向对象

        类(人类)

                对象(小明,小张)

                        属性(生命值,防御力)

                        方法(行为,函数,吃饭,喝水)

        类的定义         

        public class People {
                    int age;     //年龄
                    void laugh(){
                             System.out.println("我在笑!");
                    }
        }

                创建对象实例

                        People a = new People();

        Object object1 = new Object();
        Object object2 = object1;

        object1和object2同样是同一个对象

        final  

                final 关键字可以修饰类、方法、属性和变量

                        final 修饰类,则该类不允许被继承,为最终类
                        final 修饰方法,则该方法不允许被覆盖(重写)
                        final 修饰属性:则该类的属性不会进行隐式的初始化(类的初始化属性必须有值)或在构造方法中赋值(但只能选其一)
                        final 修饰变量,则该变量的值只能赋一次值,即常量
                如:

                        public final static String SHI_YAN_LOU="shiyanlou";

        继承

                class 子类 extends 父类

                父类拥有子类的全部方法和属性(除开 private 方法和属性)

        super

                super 关键字在子类内部使用,代表父类对象。

                        访问父类的属性 super.属性名。
                        访问父类的方法 super.bark()。
                        子类构造方法需要调用父类的构造方法时,在子类的构造方法体里最前面的位置:super()。

        抽象类

                public abstract class TelePhone {
                    public abstract void call();  //抽象方法,打电话
                    public abstract void message(); //抽象方法,发短信
                }

                类似于先有模板,后通过覆盖增添内容

        接口

                接口用于描述类所具有的功能,而不提供功能的实现,功能的实现需要写在实现接口的类中,并且该类必须实现接口中所有的未实现方法。

                修饰符 interface 接口名称 [extends 其他的接口名] {
                        // 声明变量
                        // 抽象方法
                }

随笔

1.

public class abcs {
    public static class People {    //将People透露给abcs,使其内部可以使用
        public void laugh(){        //只有People实例可以调用
            System.out.println("我在笑!");
        }
    }
    public static void main(String[] args) {
        People a = new People();    //获得People使用权
        a.laugh();                  //实例调用laugh方法
    }
}

2.

public class abcs {
    public static class People {    //将People暴露给abcs,使其内部可以使用
        public static void laugh(){        //使laugh暴露在外,使People可以直接调用laugh
            System.out.println("我在笑!");
        }
    }
    public static void main(String[] args) {
        People.laugh();
    }
}

3.

public class abcs {
    public class People {    //abcs内部无权调用,只可从外部往内调用
        public void laugh(){        
            System.out.println("我在笑!");
        }
    }
    public static void main(String[] args) {
        People b = new abcs().new People(); //先实例abcs 再实例People
        b.laugh();
    }
}

4.

public class abcs {
    public static void main(String[] args) {
        abcs p = new abcs();
        p.tt();
    }
    public void tt(){               //没有static,abcs内部无权直接调用
        System.out.println("pp");
    }
}

5.

//文件1
public class abcs {                     
    public static void main(String[] args) {
        abc p = new abc();          //可跨文件调用public类
        p.laugh();
    }
}
//文件2
public class abc {
    public void laugh(){
        System.out.println("我在笑!dsg");
    }
}

6.

//文件1
public class abcs {
    public static void main(String[] args) {
        abc.laugh();
    }
}
//文件2
public class abc {
    public static void laugh(){
        System.out.println("我在笑!dsg");
    }
}

7.

class Animal {
    public void bark() {
        System.out.println("动物叫!");
    }
}
class Dog extends Animal {
    public void bark() {
        System.out.println("汪、汪、汪!");
    }
}
public class abcs {
    public static void main(String[] args) {
        Animal a = new Animal();
        Animal b = new Dog(); //父类创子类实例,子类实例优先级更高
        a.bark();
        b.bark();    //“汪,汪,汪” ,只能调用二者共有函数
    }
}

你可能感兴趣的:(学习,java,开发语言)