磊戦吧 关注:4贴子:88

回复:学习

只看楼主收藏回复

从某种意义上来说对象都是由基本类型组成的。
可以把一个对象看作为一棵树,对象的属性如果还是对象,则还是一颗树(即非叶子节点),基本类型则为树的叶子节点。程序参数传递时,被传递的值本身都是不能进行修改的,但是,如果这个值是一个非叶子节点(即一个对象引用),则可以修改这个节点下面的所有内容。
其实,面向对象方式的程序与以前结构化的程序在执行上没有任何区别。
面向对象的引入,只是改变了我们对待问题的思考方式,而更接近于自然方式的思考。
当我们把对象拆开,其实对象的属性就是数据,存放在JVM堆中;而对象的行为(方法),就是运行逻辑,放在JVM栈中。我们在编写对象的时候,其实即编写了数据结构,也编写的处理数据的逻辑。
P.S
关于数组的内存分配,对象初始化的内存分配等问题,由于篇幅问题,下次再搞个专题写吧。
连续几天几夜对着此文了。想吐的很,先到这里吧。


来自Android客户端36楼2014-05-24 21:33
回复
    /**
    系统登陆。要求使用初始化参数的方式输入用户名和密码。在程序运行之前先判断输入的参数个数是否合法。如果不合法,
    则提醒用户的程序执行不,并退出程序。如果用户已经正确输入了参数,则就可以进行用户名和密码的验证。
    如果信息正确则显示“欢迎雷柔光临!”,否则显示“错误的用户名及密码”
    */
    import java.util.Scanner;
    public class denglu
    {
    public static void main(String [] args)
    {
    Scanner input = new Scanner(System.in);
    Chushihua yonghu = new Chushihua();
    String c;
    String c1;
    String y = "y";
    String n = "n";
    System.out.println("------------------------------欢迎使用雷大班长用户登录系统--------------------");
    System.out.println("\n");
    System.out.println(" -------------请初始化用户名及密码----------");
    System.out.println("\n");
    System.out.print(" --------------请初始化用户名:");
    String name = input.next();
    System.out.println("\n");
    String mima1;
    String mima2;
    while(true)
    {
    System.out.print(" ---------------请初始化密码:");
    mima1 = input.next();
    System.out.println("\n");
    System.out.print(" ---------------请确认初始化密码:");
    mima2 = input.next();
    if (mima1.equals(mima2))
    {
    CLS.CLS();
    System.out.println("\n");
    System.out.println("\n");
    System.out.println("--------------------------恭喜您,注册用户成功!------------------------------");
    System.out.println("是否继续(y/n)?");
    c = input.next();
    //用户密码输入验证
    if (c.equals(y))
    {
    CLS.CLS();
    System.out.println("------------------------------欢迎使用雷大班长用户登录系统--------------------");
    YanZheng lei = new YanZheng();
    lei.y = yonghu;
    System.out.println("\n");
    System.out.println("-----------用户登录界面:");
    System.out.println("\n");
    System.out.print(" -------------------------请输入用户名:");
    String me = input.next();
    System.out.println("\n");
    System.out.print( " ------------------------请输入密码:");
    String pc = input.next();
    lei.me1 = name;
    lei.pc1 = mima1;
    lei.setMe(me);
    lei.setPc(pc);
    lei.sure();
    }
    break;
    } else
    {
    CLS.CLS();
    System.out.println("\n");
    System.out.println("\n");
    System.out.println("------------------------您两次密码输入有误,请查正后再次输入------------------");
    System.out.println("是否继续(y/n)?");
    c1 = input.next();
    if (c1.equals(n))
    {
    break;
    }
    }
    }
    //yonghu.sure();
    yonghu.setName(name);
    yonghu.setMima1(mima1);
    yonghu.setMima2(mima2);
    //Runtime.getRuntime().exec("cmd /c start cls ");
    }
    }
    class Chushihua
    {
    private String name;
    private String mima1;
    private String mima2;
    public void setName(String name)
    {
    this.name = name;
    }
    public String gerName()
    {
    return name;
    }
    public void setMima1(String mima1)
    {
    this.mima1 = mima1;
    }
    public String gerMima1()
    {
    return mima1;
    }
    public void setMima2(String mima2)
    {
    this.mima2 = mima2;
    }
    public String getMima2()
    {
    return mima2;
    }
    }
    class YanZheng
    {
    private String me;
    private String pc;
    String me1;
    String pc1;
    Chushihua y;
    public void setMe(String me)
    {
    this.me = me;
    }
    public void setPc(String pc)
    {
    this.pc = pc;
    }
    public String getMe()
    {
    return me;
    }
    public String getpc()
    {
    return pc;
    }
    public void sure()
    {
    if (me.equals(me1))
    {
    if (pc.equals(pc1))
    {
    CLS.CLS();
    System.out.println("\n");
    System.out.println("\n");
    System.out.println("\n");
    System.out.println("*****************************欢迎雷大人光临!!!******************************");
    }else
    {
    CLS.CLS();
    System.out.println("\n");
    System.out.println("\n");
    System.out.println("\n");
    System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$傻x。。。密码错误!$$$$$$$$$$$$$$$$$$$$$$$$$$$ ");
    }
    }else
    {
    CLS.CLS();
    System.out.println("\n");
    System.out.println("\n");
    System.out.println("\n");
    System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$傻x。。。用户名错误!$$$$$$$$$$$$$$$$$$$$$$$$$$$ ");
    }
    }
    }


    38楼2014-05-28 14:11
    回复
      /**
      会员管理系统,要求实现会员的增加,删除,查找,修改(注意删除一个会员后对象数组的内
      部变化,其次拓展如果对象数组定义的长度不够用该怎么办?也就是如何更改对象数组的长度?)
      会员信息包括姓名,学号,性别,就可以了
      */
      import java.util.Scanner;
      import java.util.Arrays;
      public class MembersManager
      {
      public static void main(String [] args)
      {
      Scanner input = new Scanner(System.in);
      Manager manager = new Manager();
      String name,sex;
      int number;
      String c;
      Begin:
      while(true)
      {
      CLS.CLS();
      System.out.println("\n\n\n\n");
      System.out.println("--------------------------欢迎使用杨氏会员管理系统-----------------------------");
      System.out.println(" \n\n 1:会员的添加\t\t2:会员的查看\t\t3:会员的查找\n\n 4:会员的删除\t\t5:会员的更改\t\t6:退出\n\n\n ");
      System.out.print("--------------------请选择服务项目:");
      int choose = input.nextInt();
      if (choose == 1)
      {
      CLS.CLS();
      System.out.println("\n\n\n\n");
      System.out.println("-----------------欢迎使用杨氏杨氏会员管理系统之会员添加功能-----------");
      while(true)
      {
      System.out.println();
      System.out.print("-------------请输入会员的姓名:");
      name = input.next();
      System.out.println();
      System.out.print("--------------请输入会员的性别:");
      sex = input.next


      来自Android客户端39楼2014-06-02 01:24
      回复
        /**
        Foreach 循环
        */
        public class ForeachDemo
        {
        public static void main(String [] args)
        {
        String [] names = {"小夏","yuxi","chuchu","manman"};
        for (int i = 0;i<names.length ;i++ )
        {
        System.out.print(names[i]+" ");
        }
        //foreach
        System.out.println("\n------------------------------------");
        for (String name:names )
        {
        System.out.print(name+" ");
        }
        }
        }


        41楼2014-06-03 19:49
        回复
          /**
          可变参数
          一个可变参数的方法中只能出现一个可变参数
          多个参数时,可变参数必须是最后一个
          */
          public class VarPrarmDemo
          {
          public static void main(String [] atgs)
          {
          String [] names = {"weng","zhang","pan","gao"};
          //调用方法
          Method1(names);
          System.out.println("\n------------------------------------");
          Method2("weng","zhang","pan","gao");
          }
          //可变参数
          public static void Method2(String ... names)
          {
          for (String name:names )
          {
          System.out.print(name +" ");
          }
          }
          public static void Method1(String [] names)
          {
          for(String name:names)
          {
          System.out.print(name+" ");
          }
          }
          }


          42楼2014-06-03 19:49
          回复
            /**
            代码块
            1:普通代码块:写在方法中的代码,作用域在离他最近的花括号内
            2:构造块:在构造对象时才调用,在类中的代码,先于构造方法执行
            3:静态块:在类加载时只执行一次,先于构造块执行(重要!实际的开发中会用到)
            */
            public class CodeDemo
            {
            //构造块
            {
            System.out.println("我是构造块");
            }
            public CodeDemo()
            {
            System.out.println("我是构造方法");
            }
            //静态块
            static
            {
            System.out.println("我是静态块");
            }
            public static void main(String [] args)
            {
            CodeDemo cd1 = new CodeDemo();//构造块只能在构造对象的时候才能执行
            CodeDemo cd2 = new CodeDemo();
            //普通代码块(方法中写的)
            {
            //花括号里面变量的作用范围只能在花括号里面
            String info = "学习就像泡妞,有feel就得上";
            System.out.println(info);
            }
            String info = "学习就像泡妞,最重要的是胆大心细脸皮厚";
            System.out.println(info);
            }
            }


            43楼2014-06-03 19:50
            回复
              /**
              继承的基本概念
              构造方法不能被继承
              非私有的:public default protected
              访问修饰符:: private(私有的) default(默认的) public(公共的)
              子类对象实例化时会首先调用父类的构造方法
              如果父类中没有默认的构造方法,必须在子类的构造方法中必须显示的调用父类的构造方法:super
              */
              public class ExtendsDemo
              {
              public static void main(String [] args)
              {
              HomeChicken hc = new HomeChicken();
              hc.desc();
              System.out.println("-------------------------------");
              Pheasant p = new Pheasant("xiaobai");
              p.desc();
              }
              }
              //父类(超类。基类)
              class Chicken
              {
              protected String name;
              public Chicken(String name)
              {
              System.out.println("Chicken "+name);
              }
              public void desc()
              {
              System.out.println("我是一只鸡");
              }
              }
              //子类(家鸡)
              class HomeChicken extends Chicken
              {
              public HomeChicken()
              {
              super("xiaohei");//super 表示父类的应用,调用父类的构造方法必须是第一句
              System.out.println("HomeChicken");
              }
              }
              //子类(野鸡)
              class Pheasant extends Chicken
              {
              public Pheasant(String name)
              {
              super("xiaobai");
              this.name = name;
              System.out.println("Pheasant");
              }
              }


              45楼2014-06-03 19:50
              回复
                /**
                方法的重写
                */
                public class OverridingMethodDemo
                {
                public static void main(String [] args)
                {
                HomeDog hd = new HomeDog("小白");
                hd.desc();
                Dog d = new Dog("小黑");
                d.desc();
                }
                }
                //父类
                class Dog
                {
                protected String name;
                public Dog(String name)
                {
                this.name = name;
                }
                protected void desc()
                {
                System.out.println("dog :My name is "+name);
                }
                }
                //子类
                class HomeDog extends Dog
                {
                //public String name;//属性的重写
                public HomeDog(String name)
                {
                super(name);
                }
                //方法的重写(返回值相同,抛出异常不能大于父类,参数列表必须一致,方法名必须一致)
                public void desc()
                {
                System.out.println("我是一只狗,我的名字是:"+name);
                }
                }


                46楼2014-06-03 19:50
                回复
                  也是最近学的有些累


                  来自Android客户端48楼2014-06-09 22:57
                  回复
                    必须努力


                    来自Android客户端49楼2014-07-01 04:56
                    回复
                      关注喽~


                      来自Android客户端50楼2014-08-11 12:25
                      收起回复