Java 基础类之二

Java 属性与局部变量的相同点与不同点

package com.chenxi.java;
/*
类中属性的使用
属性(成员变量)vs 局部变量
1.相同点
1.1定义变量的格式:数据类型 变量名= 变量值
1.2先声明后使用
1.3都有其对应作用域
2.不同点
2.1在类中声明的位置的不同
属性:直接定义在类的一对{}里
局部变量:声明在方法内、方法形参、代码块内、构造器形参构造器内部的
2.2关于权限修饰符的不同
属性:可以在声明属性时,指明其权限修饰符,使用权限修饰符;
常用的权限修饰符:private、public、缺省、protected;
局部变量不可以使用权限修饰符的

2.3 默认初始化值的情况
属性:类的属性,根据其类型,都有默认初始化值
整型:(byte、short、int、long):0
浮点型:(float、double):0.0
字符型:(char):0(或者'u0000')
布尔型:(boolean):false
引用数据类型:(类、数组、接口)null
局部变量:没有默认初始化值
意味着,在调用之前一定要赋值
特别:形参在调用时我们赋值
2.4加载内存空间不同
属性:加载到堆空间中(非static)
局部变量:加载到栈中

 */

public class usertest {
    public static void main(String[] arges){
        Useri u1 = new Useri();
        System.out.println(u1.yy);
        System.out.println(u1.age);
        u1.talk("汉语");
        u1.eat();

    }
}
class  Useri{
    //属性(成员变量)
    String yy;
    public int age;
    boolean imMale;
    public void talk(String language){//language:形参,也是局部变量
       System.out.println("我们使用"+language+"进行交流");
    }
    public void eat(){
        String food="烙饼";//局部变量
        System.out.println("北方人喜欢吃"+food);
    }

}

  测试

null
0
我们使用汉语进行交流
北方人喜欢吃烙饼

  方法的使用

package com.chenxi.java;
/*
类中方法的声明和使用
方法:描述类应该具有的功能
1.声明
 public void ead(){}//void没有返回值的
 public void sleep(int hour){}//形参
 public String getName(){}//String 有返回值的
 public String getNation(String nation){}//形参
2.方法的声明:权限修饰符 返回值类型 方法名(形参列表){
    方法体
}
注意 static、final、abstract 来修饰的方法
3.说明
3.1权限修饰符
Java规定的四种权限修饰符:private、public、缺省、protected
3.2返回值类型:有返回值vs没有返回值
3.2.1如果方法有返回值,则必须在方法声明时指定返回值类型。同时方法使用ruturn关键字来返回指定类型的变量或常量:
“return数据”。
如果没有返回值,则声明时使用viod来表示。通常,没有返回值的方法里通常不使用return了。
如果使用的话,只能“return”来表示结束的意思
3.2.2定义方法时是否需要返回值
要求返回
凭经验
3.3方法名:属于标识符,遵循标识符的命名规则和规范,“见名知意”
形参列表:方法可以声明0个、1个、或者多个形参。
格式:数据类型1形参1,数据类型2形参2,
定义方法时,该不该定义形参。
1题目要求
2凭经验具体问题具体分析
方法体:方法功能的具体体现 return 关键字的 */ public class Customertest { public static void main(String[] age){ Customer cu1=new Customer(); cu1.ead(); } } class Customer{ String name; int age; boolean ismale; public void ead(){ //private void ead(){//私有别墅 System.out.println("客户吃饭"); } public void sleep(int hour){ System.out.println("休息了"+hour+"ge 小时"); } public String getName(){ return name; } public String getNation(String nation){ String info = "我的国家是" + nation; return info; } }

  测试

客户吃饭

  类方法创建规范

package com.chenxi.java;
/*
类中方法的声明和使用
方法:描述类应该具有的功能
1.声明
 public void ead(){}//void没有返回值的
 public void sleep(int hour){}//形参
 public String getName(){}//String 有返回值的
 public String getNation(String nation){}//形参
2.方法的声明:权限修饰符 返回值类型 方法名(形参列表){
    方法体
}
注意 static、final、abstract 来修饰的方法
3.说明
3.1权限修饰符
Java规定的四种权限修饰符:private、public、缺省、protected
3.2返回值类型:有返回值vs没有返回值
3.2.1如果方法有返回值,则必须在方法声明时指定返回值类型。同时方法使用ruturn关键字来返回指定类型的变量或常量:
“return数据”。
如果没有返回值,则声明时使用viod来表示。通常,没有返回值的方法里通常不使用return了。
如果使用的话,只能“return”来表示结束的意思
3.2.2定义方法时是否需要返回值
要求返回
凭经验
3.3方法名:属于标识符,遵循标识符的命名规则和规范,“见名知意”
3.4形参列表:方法可以声明0个、1个、或者多个形参。
3.4.1格式:数据类型1形参1,数据类型2形参2,...
3.4.2我们定义方法时,该不该定义形参
3.4.2.1题目要求
3.4.2.2凭经验,具体问题具体分析
3.5方法体:方法的具体实现
4.return 关键字
 4.1使用范围:使用在方法体
 4.2作用:
     结束方法
     针对返回值类型的方法,使用“return数据”方法返回所有的数据。
 4.3注意点:return关键字后面不能声明执行语句
5.方法的使用中,可以调用当前类的属性或方法
        特殊的:方法A中有调用了方法A:递归方法
  方法中不可以定义方法



 */
public class Customertest {
    public static void main(String[] age){
        Customer cu1=new Customer();
        cu1.ead();
        cu1.sleep(10);

    }
}
class Customer{
    String name;
    int age;
    boolean ismale;
    public void ead(){
    //private  void ead(){//私有别墅
        System.out.println("客户吃饭");
        return;
    }
    public void sleep(int hour){
        System.out.println("休息了"+hour+"ge 小时");
        //ead();
        //sleep(10);//栈溢出
    }
    public String getName(){
        return name;
    }
    public String getNation(String nation){
        String info = "我的国家是" + nation;
        return info;
    }

}

  测试题

类的声明

package com.chenxi;

public class bean {
    String name;
    int age;
    /**
     * sex : 1表示男性
     * sex: 2表示女性
     */
    int sex;
    public void study(){
        System.out.println("studying");
    }
    public void showAge(){
        System.out.println("age"+age);
    }
    public int addAge(int i){
        age += i;
        return age;
    }

}

//class Exer3test{
//    public void method(){
//        for (int i=0;i<10;i++){
//            for (int j=0;j<8;j++){
//                System.out.print("* ");
//            }
//            System.out.println();
//        }
//    }
//}
//class Exer3test{
//    public int method(){
//        for (int i = 0;i<10;i++){
//            for (int j =0; j<8;j++){
//                System.out.print("* ");
//            }
//            System.out.println();
//        }
//        return 10 * 8;
//    }
//}
class Exer3test{
    public int method(int m,int n){
        for (int i=0;i<m;i++){
            for (int j=0;j<n;j++){
                System.out.print("* ");
            }
            System.out.println();
        }
        return m * n;
    }
}

  类的调用

package com.chenxi;

public class beantest {
    public static void main(String[] args){
        //bean b1 = new bean();
        //b1.name="tom";
        //b1.age=18;
        //b1.sex=1;
        //b1.study();

        //b1.showAge();
        //int newage=b1.addAge(3);//
        //System.out.println(newage);
        //System.out.println(b1.age);
        Exer3test E1= new Exer3test();
        //E1.method(2,10);
        int as = E1.method(2,10);
        //System.out.println("面积为"+as+"平方");
        System.out.println(as);
    }
}



测试
* * * * * * * * * * 
* * * * * * * * * * 
20

  test

package com.chenxi;

public class StudentTest {
    public static void main(String[] ages){
      //  Student s1 =new Student();
        Student[] stus = new Student[20];
        for (int i =0;i<stus.length;i++){
            //给数组对象赋值
            stus[i] = new Student();
            //给student对象的属性赋值
            stus[i].number=(i+1);
            //年级:[1-6]
            stus[i].state =(int)(Math.random() * (6-1+1)+1);
            //成绩:[0,100]
            stus[i].score =(int)(Math.random()*(100-0+1));
        }

        //打印三年级学生成绩
//        for (int i =0 ; i<stus.length;i++){
//            if (stus[i].state  ==  3){
//                System.out.println(stus[i].number + ","+stus[i].state+"," + stus[i].number);
//
//            }
//        }
        //使用冒泡排序
        for (int i =0;i < stus.length-1;i++ ){
            for (int j = 0; j< stus.length-1-i; j++){
                //如果需要换序,交换的是数组的元素;Students对象!
                if (stus[j].score > stus[j+1].score){
                    Student temp = stus[j];
                    stus[j] = stus[j+1];
                    stus[j+1] = temp;
                }
            }


        }
        //遍历数组
        for(int i = 0 ; i < stus.length;i++){
            System.out.println(stus[i].number + ","+stus[i].state+"," + stus[i].score);
        }
    }
}
class Student{
    int number;//学号
    int state;//年龄
    int score;//成绩


}

  测试

10,5,4
2,1,6
11,4,11
14,4,13
8,3,14
18,6,14
20,4,24
16,2,28
6,3,32
17,1,38
12,4,40
15,5,47
5,2,54
13,2,58
3,6,71
9,6,75
4,6,83
19,1,87
1,3,92
7,2,92

Process finished with exit code 0

  

原文地址:https://www.cnblogs.com/rdchenxi/p/14160931.html