zoukankan      html  css  js  c++  java
  • Java入门——day9

    一、今日学习

    1.方法参数及其传递问题

    (1)Java方法的参数传递只有值传递,并且传入的参数是基本类型或引用类型。

    (2)传入的是基本类型——基本类型会在栈中分配内存,在方法内修改参数值时不影响原实参

     (3)引用类型传递——在栈中声明,在堆中分配内存

    • 例:P p=new p();

    • 若对象没有初始化,则会报空指针异常

    •  每个对象都是由new创建,互不影响,每个对象中实际保存的只是属性

    •  栈内存保存的是对堆内存的引用地址;堆内存保存的是每一个对象所拥有的属性;全局代码区保存的是所有类中的方法,公共调用

    • 一块堆内存可以同时被多个对象同时指向


    2.方法递归

    条件:

    • 必须满足一个结束的条件

    • 方法调用自身

     1 public class Study{
     2     public static void main(String[] args) {
     3         Study j=new Study();
     4         long i=j.f(5);
     5         System.out.println(i);
     6     }
     7     public long f(int n) {
     8         if(n==1) {        //满足结束条件
     9             return 1;
    10         }
    11         return n*f(n-1);  //调用自身
    12     }
    13 }

    3.类的属性

    3.1 属性

    (1)成员属性(全局变量)

    • 定义在类中、方法的外面,它的范围归整个类共享

    1 public class 类名{
    2     类型 属性名称;
    3 }
    • 可以通过“对象.属性”来访问

    • 全局变量的默认值:整型——0  浮点型——0.0  布尔类型——false  引用类型——null

    • 通常对属性进行封装,使用getXXX得到属性值,使用setXXX来设置属性

    (2)局部变量

          定义在方法内部,作用范围到方法尾结束

    3.2 this关键字

    (1)this指的是当前对象,可以通过this关键字访问类中的属性、方法

    (2)this()是指调用本类中的无参数构造器,this(参数)是指调用本类中的有参构造器

    使用this调用构造器时,this关键字必须放在构造器第一行,否则报错

     1 public class ThisDemo{
     2     int x;
     3     public ThisDemo() {
     4         System.out.println("无参构造函数");
     5     }
     6     public ThisDemo(int x) {
     7         this();
     8         this.x=x;
     9     }
    10     public ThisDemo(int x,int y) {
    11         this(x);
    12         y=20;
    13     }
    14 }

    3.3 变量的作用域和生存期

    • 全局变量的作用域从变量定义开始,一直到类结束,范围包括整个类

    • 局部变量是定义在方法内部的,作用域从定义开始,到方法尾结束


    4.Java中的包

    (1) 包的作用:为类分类

    (2) 包的定义:package 包名;   //定义包名必须在程序的第一行

    (3) 包名:最好采用公司域名的倒写形式命名包   例:package com.apple

    (4) 用包导入类型

    要想调用不在同一个包的类中的方法和属性,需要导入包中的类

    • 导入包中所有的类:import 包名.*;

    • 导入包中具体的类:import 包名.类名;

    (5)编译包

    • 命令行的方式编译:

    编译程序:javac -d . 类名.java   或者  javac 包路径/类名.java   //-d——创建目录   “.”是当前目录

    //当前路径下有com文件夹,接着是wuzy文件夹,entity文件夹,类文件

    运行包中的程序:java 包路径/类名

    • 用MyEclipse编译和运行

    (6)包名:建议全部小写

    二、遇到问题

    方法的参数传递可以是值传递或引用传递,而Java传递只有值传递;

    this指针指向属性或普通方法是this.属性/方法,指向构造器是this(参数)

    三、明日学习

    1.学习Java中的枚举以及第四章的综合实例

    2.完成第四章练习

  • 相关阅读:
    20111013 18:32 女友刁钻无聊问题之标准答案
    20111013 17:40 学ACM有什么用
    typedef用法(1)
    深入C++的new(20111115 15:08 )
    用四个0算二十四点
    20111010 20:14 HDU 4021 (15数码)
    pku3020 Antenna Placement (解法1)
    C++箴言:理解typename的两个含义
    20110907 00:16 ubuntu 如何修改当前用户名
    vc6.0中添加msdn 20111105 11:52
  • 原文地址:https://www.cnblogs.com/znjy/p/13303011.html
Copyright © 2011-2022 走看看