【编程语言】Java1

day1

由虚拟机将java代码转化为各自操作系统的指令集。

???jdk安装和配置

jvm jre jdk的关系

jvm属于jre

package com.company;

//严格区分大小写
public class Main { 
    //Mai要与文件名保持一致 Main.java
    public static void main(String[] args) { //程序的入口
	// write your code here
        System.out.println("helloworld");

    /*
    多行注释
    多行注释
    */
    }
}

day2

使用变量的作用域:在一对{ }之间有效。

定义变量的格式:

8种基本数据类型:byte short int long float double char boolean

引用是不同的变量相同的地址

        String str = "abc";
        int i = 2;
        String str0 = "3"+2+1+7 ;
        String str2 = ""+2+1+7 ;
        System.out.println(str0); //3217
        System.out.println(str+i); //abc2
        System.out.println(str2); //217

算数运算符

char(' ')可以进行数学运算,转为ascii码进行计算;

字符串与其他数据类型相加时,实际上是把其他的数据转换为字符串,做字符串的拼接。

赋值运算符

0和1

比较运算符

++k先运算完了再赋值;k++先赋值再运算

day3

逻辑运算符

右边就不用再进行运算了。

x=2,y=2

位运算符

三目运算符

运算符的优先级

顺序结构、分支语句、

for(;;){
    //for循环的无限循环
}

break语句用于终止某个语句块的执行(终止当前所在的循环)

continue是对当前所在的循环起作用,用于结束当前这次循环,当前循环的下面的代码不执行,直接进入下一次循环。

 return是直接停掉整个方法。

day4

一维数组

初始化

数组元素的引用

使用动态初始化时,数组的元素会有默认值,数字类型的是0,对象的默认类型是none。

int[] ii = new int[4];
System.out.println(ii[0]);  // 0

多维数组(一维数组中的每一个元素都是一个数组)

        int[] arr = new int[]{4,2,7,1,3,5};
        int max = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (max<arr[i]){
                max = arr[i];
            }
        }
        System.out.println("max:"+max);


        // int[] aa = arr; //赋值
        // 数组的复制
        int[] copy = new int[arr.length]; //声明一个与arr长度一致的数组
        for (int i = 0; i < arr.length; i++) { //复制
            copy[i] = arr[i]; //i是数组下标
        }
        System.out.println(copy);

        //数组的反转
        int[] temp = new int[arr.length];
        int k = 0;
        for (int i = arr.length-1; i >=0; i--) {
            temp[k]=arr[i];
            k++;
        }
        arr = temp;
//        for (int i = 0; i < arr.length; i++) {
//            System.out.print(arr[i]); //531724
//        }
//
        // 冒泡排序
        int[] arr0 = new int[]{4,7,3,1};
        int tmp = 0;
        for (int i = 0; i < arr0.length; i++) { //外层循环是循环轮次
            for (int j = 0; j < arr0.length-1-i; j++) { //每一轮次的数字对比排序
                if (arr0[j]>arr0[j+1]){
                    tmp = arr0[j];
                    arr0[j] = arr0[j+1];
                    arr0[j+1] = tmp;
                }
            }
        }

        for (int i = 0; i < arr0.length; i++) {
            System.out.println(arr0[i]);
        }

常见问题

day5

面向对象编程

属性:对应类中的成员变量(人有什么属性,高矮胖瘦。。。)

行为:对应类中的成员方法(行为动作,吃饭,睡觉,上班。。。)

java类以及类的成员

类的语法格式

public class Person {
    // 属性,成员变量:类的成员变量可以先声明,不用初始化,类成员变量有默认值
    String name; //string的默认值null
    int age; // int默认值0

    // 行为,方法也叫函数
    public void showName() {
        System.out.println("姓名:"+name);
    }
    /**
     * 获取年龄
     * @return
     * */
    public int getAge(){
        return age;
    }
}

对象的创建和使用

使用new+构造器创建一个新的对象;

使用“对象名.对象成员”的方式访问对象成员(包括属性和方法)

// 同一个包里就可以相互调用了!!!

不论类有多复杂,我们会给这类创建对象,并且使用对象,对于对象的使用无外乎就两个地方:操作对象的变量,调用类方法。

类的属性(也就是成员变量???)

 

编写学生类:

调用:

类的方法

方法的调用

在idea上报错:

同一类中,所有的方法可以直接互相调用,不用new去实例化对象。 

方法只能调用方法,不能在方法内部定义方法。

关于对象

对象的产生

匿名对象(不限实例化变量,直接调用)

new Student().showInfo(); //匿名对象的使用

任何的类都可以当作对象:

1、

2、

提示:

方法的重载(特点:与返回值无关,只看参数列表

重点:参数个数+参数数据类型+参数顺序

练习

2、

3、

重载的max方法

day6

方法的可变个数的形参(使用方式和数组一样,只能放在所有形参的最后!!)

...是0到多个的意思

这里有个疑问?string对象要new吗?

用数组的方式来传递可变个数的参数,如果没有参数,就要定义一个空数组或者null;而...的形式,如果没有参数就可以不填。

方法的参数传递

基础数据(值传递)

以下为什么要加static?因为类方法(static)不能直接调用实例方法(不带static)。

只是传递了a的值。栈中的a不会变,c里参数是地址或者引用传递才会改变a。

引用对象(引用传递)

在这个例子中,最后的结果是ds和ds1操作实际上是同一个对象。

包package和引用import

在java中包的概念和文件夹的概念类似,包的存在是为了解决文件太乱不好管理,文件重名等问题。(文件整理)

包的层级结构与文件夹同理。

  

day06和day06.test是包的嵌套,通过.来完成。(com.cn.test)

通过import来引用其他包里的类。如果使用同一个包下的类,import可以省略。

第五条:

封装和隐层

总结

访问权限修饰符

类的构造方法

new对象的根本原理就是通过调用类的构造方法。  (默认的构造方法名与类名相同,修饰限定符也保持一致)

Person person = new Person(); //调用的是public Person(){}这个构造方法

想在构造person类的时候给附上默认名字:希望在new对象的时候能够自己给属性不一样的值 

3

调用

构造方法重载

是方法就能重载,为了应对不同的局面。为了调用方可以灵活的创建出不同需要的对象。重载的多个构造方法实际上就是相当于提供了多个初始化new对象的模板。

this关键字

 this代表:当前对象的属性(这个对象的变量),没有this的是形参。(相当于python的self)

调用当前类的方法,调用当前类的成员变量。

this()可以作为一个类中,构造方法相互调用的特殊格式。

注意:

javabean

类似于一个实体类(人,动物,学生)

javabean的写法(一个javabean:私有的属性,属性对应的get和set方法。)

javabean的用法:

getset有快捷键。

control + return(回车键)
command + N


【编程语言】Java2


IntelliJ IDEA问题@一笑小先生

objc[2195]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/bin/java (0x10ed714c0) and 
/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x10edf54e0). One of the two will be used. Which one is undefined.

解决方案:
  1、点击IJ最上面菜单的Help-Edit Custom Properties,没有这个properties文件的话,IJ会提示创建,然后在里面加上

idea.no.launcher=true

       2、重启IDEA


IntelliJ IDEA使用教程 - 全面版

发布了316 篇原创文章 · 获赞 96 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/weixin_31866177/article/details/100978200