java编程中的一些小知识(print与println的区别,方法的定义,参数传递机制)

编码GBK不可映射字符(错误提示)

解决方法:需要在每个build.gradle中加入一串固定的代码

java编程中的一些小知识(print与println的区别,方法的定义,参数传递机制)_第1张图片

java编程中的一些小知识(print与println的区别,方法的定义,参数传递机制)_第2张图片

固定代码

java编程中的一些小知识(print与println的区别,方法的定义,参数传递机制)_第3张图片

print与println的区别

print不换行;println自动换行
以println输出

public class Myclass {
    public static void main(String[] args) {
        int a = 10;
        float b = 20;
        System.out.println("a ="+a);
        System.out.println("b ="+b);
    }
}

输出结果:
a=10
b=20.0
以print输出

public class Myclass {
    public static void main(String[] args) {
        int a = 10;
        float b = 20;
        System.out.print("a ="+a);
        System.out.print("b ="+b);
    }
}

输出结果:
a=10b=20.0

java的数组

1. 数组的定义Array ( int num[] = new int[30]),数组一旦创建,内存空间确定无法变化

创建静态数组
String name = new String[]{"jack","merry"};
常用定义方法
String[] titles = new String[]{"新闻","体育"};

2.数组的访问(num[0] = 20)

public class Myclass {
    public static void main(String[] args) {
            //创建动态数组
            int num[] = new int[30];
            //获取数组的个数
            System.out.println("数组个数"+num.length);

        }  
    }

输出结果:
数组个数30

3.数组的遍历

方法一:关心第几个

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

方法二:仅仅打印出来每个

      for(String temp :titles){
                System.out.println(temp);
            }

方法的定义

·类里边有什么:属性、方法、类→内部类、接口、静态代码块(java是面向对象的语言,一切皆对象)
· java里的方法都不可独立存在,只能在类里申明
类方法=静态方法
对象方法=实例方法

对象方法与类方法的区别

1.定义的区别:类方法 使用static修饰
2.意义的区别:类方法依附于类本身,优先于对象方法被加载,当这个类加载到内存中时这个方法即被加载,而此时对象还不存在,所以只能用类来调用调用这个类方法;对象方法依附于对象,必须创建这个类的一个对象,用对象来调用
3.static可以修饰以下
变量 静态变量
方法 静态方法
类(内部类)静态内部类
定义

public class Person {

    //定义一个没有参数实例的方法
    //public protect private
    public void eat(){
        //修饰符+返回值+方法名+参数

    }
    public void work(String tool,String dest){

    }
    public String test(){
        return"result";
    }
    //定义一个对象方法
    public static void test2(){

    }
}

访问

public class Myclass {
    public static void main(String[] args) {
        Person p = new Person();
        p.eat();
        p.work("榔头","工地");

        String result = p.test();
        //类方法的调用
        Person.test2();
    }
}

java参数传递机制

值传递,传递过去的是当前一份变量的拷贝,内部改变不影响值

java编程中的一些小知识(print与println的区别,方法的定义,参数传递机制)_第4张图片

Myclass.java

public class Myclass {
    public static void main(String[] args) {
       {
            int a = 10;
            Person q = new Person();
            q.test3(a);
            System.out.println("a=" + a);
        }
    }

}

Person.java

public class Person {

    //定义一个没有参数实例的方法
    //public protect private
    public void test3(int a){
        //修饰符+返回值+方法名+参数
        a++;

    }

输出结果:
a=10
对象传递,传递的是地址,所以内部改变时。值发生改变

java编程中的一些小知识(print与println的区别,方法的定义,参数传递机制)_第5张图片

public class Myclass {
    public static void main(String[] args) {
        {
            Car bz = new Car();
            bz.wheelCount = 8;

            Person p = new Person();
            p.test4(bz);
            System.out.println("wheel count is " + bz.wheelCount);
        }
    }

}

package com.example.lib.day2;

/**
 * @Description
 * @Author 空添
 */
public class Car {
    public int wheelCount;
}

输出结果:
wheel count is 4

可变参数

Person.java

public class Person {
    //传递一个可变参数,参数个数不确定
    //使用数组来接收
    //String ... args等价于String[] args
    public void test5(String ... args){
        for(int i = 0;i < args.length;i++){
           System.out.println(args[i]);
        }
    }
}

Myclass.java

package com.example.lib.day2;

/**
 * @Description
 * @Author 空添
 */
public class Myclass {
    public static void main(String[] args) {        
        {
            Person p = new Person();
            p.test5("jack","rose","merry");
        }
    }
}

输出结果:
jack
rose
merry

方法的重载

同一个类里,方法名相同,参数不同;方法的重载和返回值,修饰符没有关系;方法名与类名相同,没有返回值
构造方法如何去创建一个对象;系统默认提供一个无参的构造方法
构造方法可以解决两个问题:代码更简洁
Car.java

public class Car {
    public int wheelCount;
    public int engine;
    public int seat;
    public Car(){

    }
    public Car(int count,int cEngine,int cSeat){
        wheelCount = count;
        engine = cEngine;
        seat = cSeat;
    }
}

Myclass.java

package com.example.lib.day2;
public class Myclass {
    public static void main(String[] args) {
     {
        Car c1 = new Car();
        c1.wheelCount = 4;

        Car c2 = new Car(4,2,7);
    }


}

private的访问方法

setter/getter方法:间接访问private
Myclass.java

public class Myclass {
    public static void main(String[] args) {
        Person p = new Person();
        //直接访问
        p.money = 200;
        //间接访问
        p.setName("jack");

        System.out.println("My name is "+p.getName());

    }
}

Person.java

package com.example.lib.day3;

/**
 * @Description
 * @Author 空添
 */
public class Person {
    private String name;
    public int money;

    //set方法
    public void setName(String name){
        this.name = name;
    }

    //get方法
    public String getName(){
        return name;
    }
}

输出结果:
My name is jack

getter和setter方法快速调出:alt+enter

(这个方法位于代码末端)

toString方法

没有手动实现toString方法
Myclass.java

package com.example.lib.day3;
public class Myclass {
    public static void main(String[] args) {
        Person p = new Person();
        System.out.println(p);

    }
}

Person.java

package com.example.lib.day3;
public class Person {
    private String name;
    public int money;
}

输出结果:
com.example.lib.day3.Person@42a57993

当print输出一个对象时,就会去这个对象内部查找toString方法
如果没有实现,那么会从父类Object里去查找toString的实现
Object里面默认使用 类名+@+hasCode
重写toString方法是为了在调试时快速获取这个对象信息

手动输入实现toString
 @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", money=" + money +
                '}';

输出结果:
Person{name='null', money=0}

你可能感兴趣的:(java编程中的一些小知识(print与println的区别,方法的定义,参数传递机制))