- 包把类组织起来,每个类属于一个包。
- 包就是目录,同一个包中的类用于同一种用途。
- 可以用import引入其他包,进而使用其他包中的类。
常用的包有:java.lang, java.io, java.math, java.util java.applet, java.awt, java.awt.datatransfer java.awt.event, java.awt.image, java.beans java.net, java.rmi, java.security, java.sql
类的定义类是什么:是对现实生活中一类具有共同属性和行为的事物的抽象,确定对象将会拥有的属性和行为。
public class 类名{
//成员变量
//成员方法
}
创建对象:类名 对象名=new 类名(); 例:People p=new People();
使用对象:使用对象调用成员变量和成员方法
- 调用成员变量:对象名.变量名 例:p.name
- 调用成员方法:对象名.方法名() 例:p.talk()
下面列举一个例子
package com.company.www;
public class people {
String name;
int age;
String d;
public String drink() {
return name+"爱喝"+d;
}
}
package com.company.www;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
people p=new people();
System.out.println("请输入姓名:");
p.name=sc.nextLine();
System.out.println("请输入年龄:");
p.age=sc.nextInt();
System.out.println("请输入爱喝的饮料:");
p.d=sc.next();
System.out.println(p.name+p.age);
System.out.println(p.drink());
}
}
结果:
请输入姓名:
王小明
请输入年龄:
18
请输入爱喝的饮料:
咖啡
王小明18
王小明爱喝咖啡
另外在编写例子的时候发现一个小问题,“nextLine();”不能放在“nextInt();”后面,否则nextLine();会读入"n"字符,但"n"并不会成为返回的字符。把“nextLine();”换成“next();”就能解决问题。
成员变量和局部变量| 不同 | 局部变量 | 成员变量 |
|---|---|---|
| 在类中的位置 | 方法内,方法声明 | 方法外 |
| 生命周期 | 随着方法的调用出现和消失 | 随着对象的调用出现和消失 |
| 初始化 | 无默认初始化值,必须赋值才能使用 | 有默认的初始化值 |
1、private修饰词,表示成员是私有的,只有自身可以访问。
2、protected,子类可以访问父类受保护成员,同时相同包内的其他类也可以访问protected成员。
3、无修饰词(默认),表示包访问权限同一个包内可以访问,访问权限是包级访问权限。
4、public修饰词,表示成员是公开的,所有其他类都可以访问。
(1)this调用本类中的属性,也就是类中的成员变量。
- 如果方法的形参和成员变量同名,不带this的是形参。
- 如果方法的形参不和成员变量同名,则无异议。
(2)this调用本类中的其他方法。
(3)this调用本类中的其他构造方法,调用时要放在构造方法的首行。
构造方法构造方法是一种特殊的方法,在创建对象的时候自动调用,构造方法的名字和类名相同
格式:
public class 类名{
修饰符 类名(参数){
}
}
例:
public class people{
public people(){
System.out.println("这是一个构造函数");
}
}
注意事项:
-
如果没有定义定义构造方法,系统默认给出一个默认无参数构造方法。
-
如果定义了构造方法,系统就不再提供默认构造方法。
-
构造方法可以重载,如果要是用无参构造方法还要使用有参构造方法,在定义了有参构造方法后还要定义一个无参构造方法。
-
一般来说,无论是否使用,都手工书写无参构造方法。
- 标准类
-
成员变量使用private修饰
-
写出每一个成员变量的set和get方法,和用来显示对象信息的show方法
-
无参构造方法创建对象使用set成员方法赋值,有参构造方法直接创建有值得对象



