編碼GBK不可映射字符(錯誤提示)
解決方法:需要在每個build.gradle中加入一串固定的代碼


固定代碼

print與println的區(qū)別
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);
}
}
輸出結(jié)果:
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);
}
}
輸出結(jié)果:
a=10b=20.0
java的數(shù)組
1. 數(shù)組的定義Array ( int num[] = new int[30]),數(shù)組一旦創(chuàng)建,內(nèi)存空間確定無法變化
創(chuàng)建靜態(tài)數(shù)組
String name = new String[]{"jack","merry"};
常用定義方法
String[] titles = new String[]{"新聞","體育"};
2.數(shù)組的訪問(num[0] = 20)
public class Myclass {
public static void main(String[] args) {
//創(chuàng)建動態(tài)數(shù)組
int num[] = new int[30];
//獲取數(shù)組的個數(shù)
System.out.println("數(shù)組個數(shù)"+num.length);
}
}
輸出結(jié)果:
數(shù)組個數(shù)30
3.數(shù)組的遍歷
方法一:關(guān)心第幾個
for(int i = 0;i < titles.length;i++){
System.out.println(titles[i]);
}
方法二:僅僅打印出來每個
for(String temp :titles){
System.out.println(temp);
}
方法的定義
·類里邊有什么:屬性、方法、類→內(nèi)部類、接口、靜態(tài)代碼塊(java是面向?qū)ο蟮恼Z言,一切皆對象)
· java里的方法都不可獨立存在,只能在類里申明
類方法=靜態(tài)方法
對象方法=實例方法
對象方法與類方法的區(qū)別
1.定義的區(qū)別:類方法 使用static修飾
2.意義的區(qū)別:類方法依附于類本身,優(yōu)先于對象方法被加載,當這個類加載到內(nèi)存中時這個方法即被加載,而此時對象還不存在,所以只能用類來調(diào)用調(diào)用這個類方法;對象方法依附于對象,必須創(chuàng)建這個類的一個對象,用對象來調(diào)用
3.static可以修飾以下
變量 靜態(tài)變量
方法 靜態(tài)方法
類(內(nèi)部類)靜態(tài)內(nèi)部類
定義
public class Person {
//定義一個沒有參數(shù)實例的方法
//public protect private
public void eat(){
//修飾符+返回值+方法名+參數(shù)
}
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();
//類方法的調(diào)用
Person.test2();
}
}
java參數(shù)傳遞機制
值傳遞,傳遞過去的是當前一份變量的拷貝,內(nèi)部改變不影響值

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 {
//定義一個沒有參數(shù)實例的方法
//public protect private
public void test3(int a){
//修飾符+返回值+方法名+參數(shù)
a++;
}
輸出結(jié)果:
a=10
對象傳遞,傳遞的是地址,所以內(nèi)部改變時。值發(fā)生改變

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;
}
輸出結(jié)果:
wheel count is 4
可變參數(shù)
Person.java
public class Person {
//傳遞一個可變參數(shù),參數(shù)個數(shù)不確定
//使用數(shù)組來接收
//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");
}
}
}
輸出結(jié)果:
jack
rose
merry
方法的重載
同一個類里,方法名相同,參數(shù)不同;方法的重載和返回值,修飾符沒有關(guān)系;方法名與類名相同,沒有返回值
構(gòu)造方法如何去創(chuàng)建一個對象;系統(tǒng)默認提供一個無參的構(gòu)造方法
構(gòu)造方法可以解決兩個問題:代碼更簡潔
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;
}
}
輸出結(jié)果:
My name is jack
getter和setter方法快速調(diào)出:alt+enter
(這個方法位于代碼末端)
toString方法
沒有手動實現(xiàn)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;
}
輸出結(jié)果:
com.example.lib.day3.Person@42a57993
當print輸出一個對象時,就會去這個對象內(nèi)部查找toString方法
如果沒有實現(xiàn),那么會從父類Object里去查找toString的實現(xiàn)
Object里面默認使用 類名+@+hasCode
重寫toString方法是為了在調(diào)試時快速獲取這個對象信息
手動輸入實現(xiàn)toString
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", money=" + money +
'}';
輸出結(jié)果:
Person{name='null', money=0}