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