类中属性及方法的使用

一, 类中属性的使用
        属性(成员变量)vs局部变量
  
        1.相同点
              1.1定义变量的格式相同:数据类型  变量名=变量值(完整的,有的可能没有赋值)
              1.2都是先声明,后使用
              1.3变量都有其对应的作用域。(超过作用域范围都失效)
  
  
        2.不同点
              2.1在类中声明的位置不同(主要区别)
                   属性:直接定义在类的一对{}内

                        class User{
                           
 //属性(或成员变量)(的位置)
                            /*String name;
                            int age;
                            boolean isMale;

                            */
                   局部变量:声明在方法内,方法形参,代码块内,构造器形参,构造器内部的变量

                        //经常见到的局部变量的两个位置
                        //位置一
                          
  public void talk(String language) {//该行代码中,talk为方法名,()中的“String                                                                                       language”就是形参,
                                                                                 //所以language就是局部变量——2.1
                                                                                 //调用时赋值即可——2.3
                                
System.out.println("我们使用"+language+"进行交流");
                             }

                            //位置二
                          
 public void eat(){
                                String food="烙饼";
//food是定义在方法内的变量,也是局部变量
                                                              //这里的food只能在此处就赋值
                               
 System.out.println("北方人喜欢吃:"+food);
                            }

              2.2关于权限修饰符的不同
                   属性:可以在声明属性时,指明其权限,使用权限修饰符。
                              常用的权限修饰符:private,public,缺省,protected(讲封装性的时候具体讲                                      解)目前,声明属性时,都使用缺省。

                                //属性(或成员变量)(的位置)
                                  
  /*String name;
                                    int age;
                                    boolean isMale;
//这三行前面什么也没有就是缺省的权限
                                   
 */

                                    private String name;
                                    public int age;
                                    protected boolean isMale;
//这三行前面说明了权限
                   局部变量:不可以使用权限修饰符。
              2.3默认初始化值的情况:
                   属性:类的属性,根据其类型,都有默认初始化值。
                              整型(byte,short,int,long):0
                              浮点型(float,double):0.0
                              字符型(char):0(或'\u0000')
                              布尔型(boolean):false
                              引用数据类型:(类,接口,数组):null
                   局部变量:没有默认初始化值。所以在调用局部变量之前一定要显式赋值。 特别地,                                       形参在调用时,我们赋值即可。(实例上面代码有)
              2.4在内存中加载的位置不同
                   属性:加载到堆空间中(非static)
                   局部变量:加载到栈空间


二,类中方法的声明和使用
方法:描述类应该具有的功能
 比如:Math类:sqrt()\random()(本身就没有形参)\...
      Scanner类:nextXxx()..(用于从键盘获取数据)
      Arrays类:sort()(对数组进行排序)\binarySearch()(查找)\toString()(输出一个数组)                               \equals()\...

  1.理解方法举例:
     public void eat() {}
     public void sleep(int hour) {}
     public String getName() {}
     public String getNation(String nation) {}

  这四行声明中二四行有形参(int hour和String nation),一三行没有,意味着方法实际上可以不用包含形参,可有可没有形参。
 * 前两行中有void,void表示没有返回值;后两行有String表示有返回值,返回两个字符串。

 * 2.方法的声明:权限修饰符  返回值类型  方法名(形参列表(可有可无,有的话还可以不止有一个)){
 *                         方法体
 *                 }(这几个部分一定有,注意:static,final,abstract来修饰的方法不一定有,之后详解。)
 * 3.说明:
 *      3.1关于权限修饰符:目前默认方法的权限修饰符先都用public
 *         Java中规定的4中权限修饰符:private,public,缺省,protected(体现结构被调用时的权限大小)
 *      3.2返回值类型:有返回值  vs 没有返回值
 *         3.2.1如果方法有返回值,则必须在方法声明时,指定返回值的类型。同时,方法中,需要使用return关键字来返回指定类 型的变量或常量:“return 数据”。如果方法没有返回值,则方法声明时,使用void来表示。通常,没有返回值的方法中,就不需要使用return。但是,如果使用return的话,只能:“return;”,表示结束此方法,且后不可以声明表达式。
 *         3.2.2定义方法该不该有返回值:
 *             ①题目要求
 *             ②凭经验,具体问题具体分析
 *         3.3    方法名:属于标识符,遵循标识符的规则和规范,“见名知意”
 *         3.4形参列表:方法可以声明0个,1个,或多个形参。
 *            3.4.1格式:数据类型1   形参1,数据类型2   形参2,...
 *            3.4.2定义方法时,该不该定义形参?
 *                 ①题目要求        
 *                 ②凭经验,具体问题具体分析
 *         3.5方法体:方法功能的体现。
 * 4.return关键字的使用:
 *         1.适用范围:使用在方法体中
 *         2.作用:①结束方法
 *              ②针对有返回值类型的方法,使用“return  数据”方法返回所要的数据。
 *         3.注意:return关键字后面不能声明执行语句。
 * 5.方法使用中,可以调用当前类的属性或方法
 *             特殊的,方法A中又调用了方法A:递归方法。
             方法中,不可以再定义一个新方法。
 *         public class CustomerTest {
                   public static void main(String[] args) {
                         Customer cust1=new Customer();
                         cust1.eat();
                         cust1.sleep(8);
                    }
            }
 *             public void eat() {
                        System.out.println("客户吃饭");
                }
    public void sleep(int hour) {
        System.out.println("休息了"+hour+"个小时");
        eat();
       
分别输出 客户吃饭
        休息了8个小时
        客户吃饭

 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值