• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
戈瑾
博客园    首页    新随笔    联系   管理    订阅  订阅
Java入门——day9
Java中的包、方法递归、类属性等

一、今日学习

 

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.完成第四章练习

posted on 2020-07-14 21:10  戈瑾  阅读(175)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3