A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.类的定义:
  a.定义格式:

    class 类名{
     /*
      private(私有)
        修饰的成员变量或成员方法
        只能在本类中使用,而不能在类外部
     */
     private 类型1 成员变量名1;
     private 类型2 成员变量名2;
     .....

     //普通的成员方法
     public 返回值类型 方法名(形参类型1 变量名1,形参类型2 变量名2,....){//成员方法没有static修饰
       //方法代码
      // return 返回值;
     }

     //getter/setter方法
     public 类型1 getXxxx(){//Xxxx代表变量名,变量名首字母大写

        return  成员变量名;
     }

     public void setXxxx(类型1 变量名1){
        this.成员变量名1=变量名1;//将局部变量变量名1的值赋值给成员变量
                                 //当局部变量名和成员变量名相同时候,this用来区分成员变量和局部变量
     }                          //this所在成员方法被该类的对象调用,this就指向该对象

      ....//成员变量名2的getter/setter方法

   }

   b.使用格式:
     class Student{
          private String name ;
          private int  age;

          public void setName(String name){
             this.name=name;

          }

          public String getName(){
             return name;
          }

         //年龄的赋值与获取值
          public int getAge() {
                         return age;
         }
                 public void setAge(int age) {//当把age用private修饰后,外部不能通过 对象名.age 来直接访问,也就不能给age赋任意值
                          if(age>=1 && age<=150){    //当有setAae()方法之后,我可以在setAge()方法中对age的数值做一些安全性判断,提高安全性
                                  this.age=age;
                          }else{
                                  System.out.println("您输入的年龄有误");
                          }
                          
                 }
     }

     public static void main(String[] args) {
              Student s=new Student();
              s.setName("哈哈");
              s.getName();

     }
  c.面向过程与面向对象
    1.面向过程:
      开发软件的时候需要考虑程序实现的每个细节
    2.面向对象:
      a.更符合人们的思维习惯
      b.将复杂的事物的简单化
       class GirlFriend{


        洗干净的衣服 washClothe(衣服 ){
              WashClotheMachine wcm=new WashClotheMachine();
             wcm.washClothe(衣服)

         }

       }

       class WashClotheMachine{

           洗干净的衣服 washClothe(衣服 ){



            }


       }

      GirlFriend gf=new GirlFriend();
      gf.washClothe(脏衣服);

     c.由执行者变成指挥者(调用者)
c.成员变量与局部变量对比:

   成员变量
        定义位置:类中,整个类中均可以访问,类外无法直接访问
        内存:成员变量随着对象的建立而建立,存在于对象所在的堆内存中。(成员变量与所属类的对象同生共死)
        默认值:成员变量有默认值。
        回收:随着对象的回收而回收 (当没有引用指向对象的时候,该对象会变成垃圾,被GC(垃圾回收器)在一个不定时间内回收走)

  局部变量
        定义位置:定义在局部范围(方法中,方法的形参,循环中)。  
          内存:局部变量存在于栈内存中。
        默认值:没有默认值。
        回收:随着作用域结束而回收,通常为语句或方法范围。
?        变量访问原则:就近原则(先访问局部变量,如果找不到局部变量就去找成员变量)

d.Java内存区域:
  栈:局部变量
  堆:new 出来的东西(new出来对象还有数组对象)
  方法区:方法字节(描述)信息
  常量池:常量池也属于方法区的一部分,存放常量(整数常量,字符常量,字符串常量)

e.变量的定义位置:
class Person{
private double height;
private String sex;//身高和性别属于人固有的属性,因此定义在成员位置上,更贴近于现实生活描述

//private Pen  pen;//从现实生活角度考虑,pen不属于人的一部分,我们仅是使用pen去作画
                  //因此不把它定义在成员位置,而是定义在方法形参位置上

public void draw(Pen pen){


}

}
class Pen{

}

1 个回复

倒序浏览
顶顶顶顶顶顶
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马