Java02

Posted samjack

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java02相关的知识,希望对你有一定的参考价值。

数组动态初始化

格式 arrayName=new type[length];
实例:int arr[]=new int[3]
     arr[0]=1; arr[2]=6;   结果:1 0 6

数组内存分析

主要分为栈区和堆区 栈区主要存放引用地址 堆区主要存放大块的实际数据,比如对象,数组;
我们可以把栈区理解成电视遥控器,堆区就是电视机,我们的遥控器操作电视机总比直接操作电视机方便,所以这就是栈区的意义;栈区里的引用地址指向堆区的具体数据。

二维数组静态初始化

格式 arrayName=new type[][]{{element1,element2},{element1,element2},{element1,element2}};
实例: int[][]arr=new int[][]{{1,2,3},{4,5,6},{7,8,9}};  //一个中括号一行
二维数组动态初始化 格式: arrayName=new type[length][length];
实例: int[][]arr2=new int[3][3]; arr2[1][2]=3;

public class HelloWorld {
public static void main(String[] args) {
int arr[][]=new int[][]{{1,2,3},{4,5,6},{7,8,9}}; 
for(int i=0;i<arr.length;i++){
    for(int j=0;j<arr[i].length;j++){
        System.out.print(arr[i][j]+" ");
    }
    System.out.println();
}
 }
}
结果:
1 2 3 
4 5 6 
7 8 9 

数组排列实例——起泡法

对4,21,0,-12,-3排序升序

public class HelloWorld {
public static void main(String[] args) {
int arr[]={4,21,0,-12,-3};
int temp;
//循环次数n-1次
for(int i=0;i<arr.length;i++){
//比较次数n-1-i
    for(int j=0;j<arr.length-1-i;j++){
        //假如前面的一个数大于后面一个数,则交换数据
        if(arr[j]>arr[j+1]){
            temp=arr[j];
            arr[j]=arr[j+1];
            arr[j+1]=temp;
        
        }
    }
}
for(int a:arr){
    System.out.print(a+" ");
}
}
}

Java 面向对象

三大特性:封装;继承;多态
类中可以放属性和方法
简单的对象和调用方法
public class Person {

String name;//在类中定义一个姓名name字符串属性,可以存放字符串zhangsan
int age; //在类中,定义一个年龄age属性
public void speak(){
System.out.println("我叫"+name+" 我今年"+age);
}
public static void main(String[] args) {
//定义一个Person类的对象zhangsan
Person zhangsan;
//实例化对象
zhangsan=new Person(); //Person zhangsan=new Person();
zhangsan.name="张三";//给对象的name属性赋值
zhangsan.age=11;//给对象的age赋值
zhangsan.speak();//调用对象的方法
}
}
运行结果:我叫张三 我今年11

方法

参数之间用 ,隔开,普通方法必须先new一个对象,有了对象才能调用方法
public class Person {
String name;
int age;
public void speak(String name,int age){
System.out.println("我叫"+name+" 我今年"+age);
}
public static void main(String[] args) {
Person zhangsan=new Person();
zhangsan.speak("张三",23);//调用对象的方法
}
}
不固定参数
public class Person {
String name;
int age;
public void speak(String name,int age,String...hobbies){
System.out.println("我叫"+name+" 我今年"+age);
for(String hobby:hobbies){
System.out.print(hobby+" ");
}
}
public static void main(String[] args) {
Person zhangsan=new Person();
zhangsan.speak("张三",23,"游泳","唱歌");//调用对象的方法
}
}
运行结果:
我叫张三 我今年23
游泳 唱歌

直传递
public class Person {
void speak(int age){
System.out.println("我今年"+age);
age=24; //方法里是24
}
public static void main(String[] args) {
Person zhangsan=new Person();
int age=11;
zhangsan.speak(age);
}
}
运行结果:
我今年11
引用传递
class SanWei{
int b;
int w;
int h;
}
public class Person {

void speak(int age,SanWei sanWei ){
System.out.println("我今年"+age);
System.out.println("我的三围是:"+sanWei.b+","+sanWei.w+","+sanWei.h);
age=24;
System.out.println("方法里age"+age);
sanWei.b=80;//胸围缩水
}
public static void main(String[] args) {

Person zhangsan=new Person();
int age=11;
SanWei sanWei=new SanWei();
sanWei.b=90;
sanWei.w=60;
sanWei.h=90;
 zhangsan.speak(age,sanWei);
 System.out.println(age);
 System.out.println("调用地方,胸围"+sanWei.b);//和直传递有区别,传的是地址

}
}
运行结果:
我今年11
我的三围是:90,60,90
方法里age24
11
调用地方,胸围80

方法的重载,方法名字一样,但参数个数不一样
long add(int a,int b){return a+b;}和int add(int a,int b){return a+b;}不算重载,也会错误。参数类型个数一样,返回值类型不一样 不算重载,直接会报错,说方法重名。

静态方法 是加了static修饰词的方法,我们使用的时候 一般用类名.方法 方式调用;
当然也可以用对象.方法 调用; 一般java里的工具类里的工具方法 用static修饰,作为静态方法;
public class Demo02 {
void fun1(){
System.out.println("这是一个普通方法");
}
static void fun2(){
System.out.println("这是一个静态方法");
}
public static void main(String[] args) {
Demo02 demo=new Demo02();
// 调用普通方法 对象.方法
demo.fun1();
// 调用静态方法 类名.方法
Demo02.fun2();
demo.fun2();
}
}

递归的话 我们首先要找到规律 还有必须有一个出口;

Java面向对象-构造方法,this关键字

构造方法是一个特殊的方法,这个特殊方法用于创建实例时执行初始化操作;
People(){} 构造方法
特点 1,没有返回值类型,区别于其他一般方法;
2,方法名和类名一样;




































































































以上是关于Java02的主要内容,如果未能解决你的问题,请参考以下文章

Android Java:在 onCreateView() 中返回空视图的片段

通过 Java 正则表达式提取 semver 版本字符串的片段

添加到片段时按钮不起作用

[linux][c/c++]代码片段02

将字符串数据从Activity发送到片段[关闭]

无法保留嵌套片段