美文网首页
java-learn

java-learn

作者: 垃圾桶边的狗 | 来源:发表于2020-08-17 00:10 被阅读0次

java语言
跨平台的 : 它的程序是由jvm来执行的,不是直接让操作系统执行
java语言:面向对象的语言

java编程的最基本单元就是: class类
类里面能写什么?
成员变量定义或者直接赋初始值
成员方法
构造方法

   
public class Test{

    private String id;   // 私有成员变量
    public String name;   // 公共成员变量
    public int age = 18;  // 公共成员变量定义及赋初始值

    // 空参构造函数
    public Test(){    
    }
    
    public Test(String p1,String p2){
        this.id = p1;
        this.name = p2;
    }
    
    public void setId(String id){
        this.id = id;
    }
    
    
    // 静态成员方法,需要传参数,没有返回值
    public static void sayHello(String xx){
        System.out.println(xx + " ,welcome!");
    }
    
    // 普通成员方法,不需要传参数,有返回值
    public int getAge(){
        return this.age;
    }

}  

/** 类怎么用? 类一般都是在别的类中使用:用来构造一个对象以便于封装具体的数据,以及在这个对象上调其方法 **/

// 上面定义的类,可以在别的类中使用
public class Demo{
    
    // main方法是由jvm来调用的
    public static void main(String[] args){
        // 直接调用Test类的静态方法sayHello
        Test.sayHello("杨幂");
        
        
        // 利用Test类的空参构造函数,构造一个Test类的实例对象
        Test t1 = new Test();
        
        // 利用Test类的有参构造函数,构造一个Test类的实例对象
        Test t2 = new Test("007","james bond");
        t2.age = 28;
        t2.setId("008");
        t2.sayHello("杨幂");

    }
}

/** 逻辑控制语法 **/

if else
for 循环
while 循环
switch case 匹配  

/** 常用工具类的使用 **/

// 第1个工具类
Scanner  : 用来从终端上获取用户输入的信息
Scanner sc = new Scanner();
String line = sc.nextLine();
// 第2个工具类
Integer: 是int数据的包装类 :用来操作整数
int a = 5;
Integer aInteger = new Integer(5);

// 将一个阿拉伯字符解析成一个整数

int m = Integer.parseInt("98");
int max = Integer.MAX;
// 第3个工具类
String: 用来封装一串字符,同时也提供了大量的工具方法
//String a= new String("xxxxx");
String a = "xxxx,xx,yyyy";

String[] split = a.split(",");  // 切割字符串  ["xxxx","xx","yyyy"]
String s = a.subString(0,5); //截取子串   :  xxxx,
String u = a.toUpperCase();   // 将字符串转成大写  :  XXXX,XX,YYYY
// 第4个工具类
ArrayList<Object>
ArrayList<String> sList1;  // 定义一个ArrayList<String>类型的变量sList1,没有赋予任何值,那么这个变量代表的是null
ArrayList<String> sList2 = new ArrayList<String>();  // 定义一个ArrayList<String>类型的变量sList2,并构造出一个空的list赋值给它

// 添加数据
sList2.add("马蓉");
sList2.add("宋喆");
sList2.add("白百合");

// 取数据
String x = sList2.get(2);

// 第5个工具 HashSet<> :无序,不重复
// 集合类型中的工具:迭代器
HashSet<String> set = new HashSet<>();
set.add("a");
set.add("b");

从set中拿数据
Iterator it =set.iterator();
while(it.hasNext()){
    String ele = it.next();
    sysout(ele);
}
// 第6个工具 HashMap<> : 装数据是按照key-value对来存放的,key不重复,数据无序
HashMap<String,Integer> map = new HashMap<>();
map.put("a",1);
map.put("b",2);
map.put("c",3);

取数据:
Integer value = map.get("a");   // value: 1

判断是否包含指定的key
boolean ex = map.containsKey("d");  // ex: false

删除指定的数据
map.remove("c")   

遍历整个map的所有数据
方法1:先获取所有key,然后根据key去map中取value
Set<String> keySet = map.keySet();
for(String key:keySet){
    Integer value = map.get(key);
    System.out.println(key + "," +value)
}

方法2:先获取所有Entry<String,Integer>
Set<Entry<String,Integer>>   entrySet = map.entrySet();
for(Entry<String,Integer> ent:entrySet){
    sysout(ent.getKey() + "," + ent.getValue());
}

// 面向对象编程重要知识:接口
接口: 用来在模块之间调用时定义功能规范,使得模块之间解耦合,分模块开发变得更加可靠


public interface UserService{
    
    public User findUserById(String id);
    
}


实现类:
public class UserServiceImpl implements UserService{
    
    public User findUserById(String id){
        
        // 写业务逻辑
        
        return u;
        
    }
    
}

// 额外补充: 类的加载过程和对象的构造过程
  • jvm在为一个类构造对象时,所要进行的工作
  • 1、首先在这个类的加载过程中,执行静态代码,如果有多份静态代码,则从上往下顺序执行
  • 2、然后执行普通代码块
  • 3、然后再执行构造方法
  • @author ThinkPad
public class OrderDatabase {
    
    public static String orderVersion = "500";
    
    static {
        System.out.println("静态代码块执行了....");
        System.out.println("在静态代码赋值前,order版本是:" + orderVersion);
        orderVersion = "1000";
        System.out.println("在静态代码赋值后,order版本是:" + orderVersion);
    }
    
    
    {
        
        System.out.println("哈哈,普通代码块执行了.......");
        
    }
    
    
    
    public OrderDatabase() {
        
        System.out.println("空参构造函数运行了....");
        System.out.println("在构造代码赋值前,order版本是:" + orderVersion);
        orderVersion = "2000";
        System.out.println("在构造代码赋值后,order版本是:" + orderVersion);
    }
    
    public void sayHello() {
        System.out.println("哈哈,sayHello执行了......");
    }
}

相关文章

  • java-learn

    java语言跨平台的 : 它的程序是由jvm来执行的,不是直接让操作系统执行java语言:面向对象的语言 java...

网友评论

      本文标题:java-learn

      本文链接:https://www.haomeiwen.com/subject/tlcfjktx.html