学习内容:
1.this 关键字
在Java中,用户可以通过 this 关键字访问类中的属性、方法
(1)访问属性
1 package day01;
2 public class ThisDemo{
3 int x=5;
4 public ThisDemo() {
5 //通过this访问属性
6 System.out.println(this.x);
7 }
8 public static void main(String[] args) {
9 ThisDemo demo =new ThisDemo();
10 }
11 }
结果为:5
(2)this 关键字与构造器结合使用
1 package day01;
2 public class ThisDemo{
3 int x=5;
4 public ThisDemo(int x) {
5 //this.x指的是属性x
6 //方法传入的x,指的是形参x
7 this.x=x;
8 }
9 public static void main(String[] args) {
10 ThisDemo demo =new ThisDemo(9);
11 System.out.println(demo.x);
12 }
13 }
通过构造器可以给属性传值,以及初始化属性值
this ()是指调用本类中的无参数构造器
this (x) 是指调用本类中的有参构造器,可以将 ( ) 看成是方法。如果 this ()什么都不写,就是调用本类中的无参构造方法,如果里面有参数,则是调用本类中的有参构造器,一个参数是调用本类中带一个参数的构造器,多个参数则是调用多个参数的构造器。
2.变量的作用域和生存期
变量可以分为两种:一种是全局变量,另一种是局部变量。全局变量的作用域是从变量定义开始,一直到类结束,范围包括整个类。局部变量是定义在方法内部的,因此,它的作用域是从定义开始,到方法尾结束
3.包
(1)包的命名
要想使定义的包名不会和其他人定义的包名重复,最好采用公司域名的倒写形式命名包,在实际开发中,经常是采用这种命名方法
在Java中建议包名全部小写,不管包是不是由多个单词构成
package com.apple
(2)用包导入类型
如果两个类分别定义在不同的包中,那如何互相调用类中的方法和属性呢?这时候要导入包中的类,导入包中的类有两种方式
- 导入包中所有的类:import 包名 . * ;
- 导入包中具体的类:import 包名 . 类名 ;
1 package com.wuzy.entity;
2 public class Person {
3 private String name; //姓名
4 private int age; //年龄
5 public String getName() {
6 return name;
7 }
8 public void setName(String name) {
9 this.name=name;
10 }
11 public int getAge() {
12 return age;
13 }
14 public void setAge(int age) {
15 this.age=age;
16 }
17 }
18
19
20 package com.wuzy.service;
21 import com.wuzy.entity.Person;
22 public class Service {
23 public static void main(String[] args) {
24 Person p=new Person();
25 p.setName("张无忌");
26 p.setAge(20);
27 String name = p.getName();
28 int age = p.getAge();
29 System.out.println("name="+name+",age="+age);
30 }
31 }
(3)编译包
编译包有两种方式:
1、用命令行的方式编译
Javac -d . 类名 . java
-d. : 当前目录
还可以事先创建好文件夹,然后进入文件夹下编译
2、用 Eclipse 编译和运行
在Eclipse 中,只要保存就是编译
遇到的问题:
this 指针的使用方法不明确