• java基础


    一、 java中的基本类型

    1. 定义类:修饰符+class+类名

      public class Test{ }

    2. 定义方法:修饰符+返回值+方法名+参数

      public void func1(int num){ }        ======void没有返回值

      public int func2(){return 0;}          ======非void的必须有返回值

    3. 基本类型一共有8中,char、byte、short、int、long、double、float、boolean

      char:只有一位的字母

      byte short int long 数字类型,分别是8 16 32 64位

      double float 小数类型

      boolean 布尔值

    二、 java中的集合

    1. List、ArrayList 相当于Python中的list

    import java.util.ArrayList;
    import java.util.List;
    
    public class Test1 {
        public static void main(String[] args) {
    //      定义了一个空的arraylist,类似Python的列表
            List list = new ArrayList();
    
    //       定义一个声明元素类型的list List<?/int/String> list d= new ArrayList<?/int/String>()
    //        List<Integer> list = new ArrayList<Integer>();
    
    //        往list里添加一个元素
            list.add(1);
            list.add(22);
            list.add("mpp");
            System.out.println(list);
        }
    }

    输出结果如下:

    [1, 22, mpp]

    循环读取list的元素:

    import java.util.ArrayList;
    import java.util.List;
    
    public class Test1 {
        public static void main(String[] args) {
    //      定义了一个空的arraylist,类似Python的列表
            List list = new ArrayList();
    
    //       定义一个声明元素类型的list List<?/int/String> list d= new ArrayList<?/int/String>()
    //        List<Integer> list = new ArrayList<Integer>();
    
    //        往list里添加一个元素
            list.add(1);
            list.add(22);
            list.add("mpp");
            System.out.println(list);
    
    //      第一种循环输出list的每个元素
            for (int i =0;i<list.size();i++){
                System.out.println(list.get(i));
            }
    
    //        第二种循环输入list的每个元素
    //        for(Integer obj : list){
    //            System.out.println(obj);
    //        }
        }
    }

    运行结果:

    [1, 22, mpp]
    1
    22
    mpp

    2. Map,相当于Python中的字典

    import java.util.HashMap;
    import java.util.Map;
    
    public class Test1 {
        public static void main(String[] args) {
    //        定义一个map,类似于Python的字典
            Map<String, String> map = new HashMap<String, String>();
    //        往map中添加元素
            map.put("name", "mpp");
    //        输出字典
            System.out.println(map);
    //        输出某个key的值
            System.out.println(map.get("name"));
        }
    }

    运行结果:

    {name=mpp}
    mpp

    3.  set,相当于把Map中的值存储,(去重),比如我们在代码里添加两个一样的元素观察

    import java.util.HashMap;
    import java.util.HashSet;
    
    import java.util.Set;
    
    public class Test1 {
        public static void main(String[] args) {
            Set<String> set = new HashSet<String>();
            set.add("1");
            set.add("1");
            set.add("2");
            System.out.println(set);
    
        }
    }

    注意观察他的运行结果,只有一个1,会自动去重的,类似于字典中不能存在相同的key

    [1, 2]

    以上三个的size,相当于Python中的lenth,比如我们输入一个list,map和set的size

            System.out.println(list.size());
            System.out.println(map.size());
            System.out.println(set.size());

    运行结果

    3
    1
    2

    三、java中的类和类的继承,接口和实现类接口

    public class class_test01 {
    //    定义一个接口P
        interface P{
            public void sout1();  //只需要定义方法名,不用是实现
            public void sout2();
        }
    //    定义一个类F
        static class F{
            public void sout3(){ System.out.println("我是类F的sout3"); }
            public void sout4(){ System.out.println("我是类F的sout4"); }
        }
    //    定义一个类C,继承类F,实现接口P
        static class C extends F implements P{
            public void sout1(){ System.out.println("这是在类C里实现接口P的sout1"); }
            public void sout2(){ System.out.println("这是在类C里实现接口P的sout2"); }
            public void sout4(){ System.out.println("这是在类C里重写了sout4"); }
        }
        public static void main(String[] args) {
            P p = new C();  //定义变量/实例化,这里的p只能拿到类C里实现的sout1和sout2
            p.sout1();p.sout2();
            C c = new C();  //这里c可以拿到类F和接口P中的所有sout,并且sout4是类C里重写的
            c.sout1();c.sout2();c.sout3();c.sout4();
            F f = new F();  //这里f只能拿到类F中的sout3和sout4
            f.sout3();f.sout4();
        }
    }

    运行结果

    这是在类C里实现接口P的sout1
    这是在类C里实现接口P的sout2
    这是在类C里实现接口P的sout1
    这是在类C里实现接口P的sout2
    我是类F的sout3
    这是在类C里重写了sout4
    我是类F的sout3
    我是类F的sout4

     第二个具体例子:接口和实现接口的

    public class class_test02 {
    //    定义各一个接口,有一个发送的方法
        interface S{ public void send(String text);}
    //    声明一个类实现接口,邮件发送
        static class Mail implements S{
            @Override
            public void send(String text){ System.out.println("邮件发送:"+text); }
        }
    //    声明一个类实现接口,短信发送
        static class Phone implements S{
            @Override
            public void send(String text){ System.out.println("短信发送:"+text); }
        }
    
        public static void main(String[] args) {
            S mail = new Mail();
            S phone = new Phone();
            mail.send("我是邮件发送的具体内容");
            phone.send("我是短信发送的具体内容");
        }
    }

    运行结果

    邮件发送:我是邮件发送的具体内容
    短信发送:我是短信发送的具体内容

    第三个具体例子:类和类的继承(子类和父类)以及子类重写父类

    public class class_test03 {
        static class P{
            public void getText(){ System.out.println("person is animal"); }
            public void getAge(){ System.out.println("person is 36"); }
        }
        static class C extends P{
            public void getOther(){ System.out.println("child is baby"); }
            public void getAge(){ System.out.println("person is 10"); }
        }
    
        public static void main(String[] args) {
            P p = new C(); //使用P定义的变量,拿不到C的getOther方法
            p.getText();p.getAge();
    
            C c =new C();  //使用C定义的变量,可以拿到子类C和父类P的全部方法,如果子类重写了父类的方法,结果得到的是子类方法
            c.getOther();c.getAge();c.getText();
        }
    
    }

    运行结果

    person is animal
    person is 10
    child is baby
    person is 10
    person is animal
  • 相关阅读:
    vim插件:显示树形目录插件NERDTree安装 和 使用【转】
    CMake 入门实战【转】
    在 linux 下使用 CMake 构建应用程序【转】
    Buildroot构建指南——根文件系统(Rootfs)【转】
    Buildroot构建指南--快速上手与实用技巧【转】
    Vim升华之树形目录插件NERDTree安装图解【转】
    【转】Android端与Android端利用WIFI进行FTP通信
    【转】Android 服务器之SFTP服务器上传下载功能 -- 不错
    【转】session setup failed: NT_STATUS_LOGON_FAILURE -- 不错
    【转】Mac OS X开机启动Path had bad permissions错误解决方案
  • 原文地址:https://www.cnblogs.com/mpp0905/p/9653357.html
Copyright © 2020-2023  润新知