对象:
- 是具体的实体,有明确的特征和行为。
- 是数据封装的结果。因关注而产生(学生的属性,由项目需求而确定。成绩只关心每科成绩,学籍关心家庭信息。)
类是
- 具有相同属性和行为的一组对象的集合。
- 类是对象的抽象,(确定了对象所具有的属性),
- 对象是类的实例(每个具体的对象赋予了属性相应的具体属性值)。
变量按作用域分类:
局部变量:在方法或有语句块中申明的变量,
生命周期只在定义该变量的{}之内,方法或语句块一结束,局部变量消失,所以不能跨方法使用。
成员变量(属性):在类中(class),方法外(main),是一个对象的组成部分,随对象产生而产生,随对象销毁而销毁。
比如魂斗罗里面的子弹类型,跟随人物产生,死亡而死亡。
静态变量(类变量):在类中,方法外,声明的static 变量。独立在对象之外,由很多对象共享的变量。在对象产生之前产生,常驻内存。虚拟机关闭时,消失。
比如玩家的总分数,不会因为玩家死亡而消失。
区别在于生命周期。能用局部变量,就用局部变量,尽量减少作用范围,便于内存的分配和释放。局部变量在使用方法时,被创建,方法完成销毁,下次调用方法又被产生。
Stu arr[] = new Stu[2];
Stu O1 = new Stu ;
Stu O2 = new stu ;
Stu arr[] = new Stu[2];
O1=O2;//01指向的内存不再被指向,回收
O2 = arr[0];
编译,包,类的相关导入,使用
- 编译的是文件,生成类,
- 执行的是类名,从类下面的main方法进入。
比如,下面的两个类没有加public 所以在编译文件的时候,会生成两个编译文件,MM.class YY.class
class MM{
public static void main (String []args){
system.out,println("*********");
}
}
calss YY{
public static void main(String[] args){
system.out.println("########");
}
}
使用其他类
- 如果要使用其他包的类,则需要导入包,快捷键为 ctrl+shift+O,前提是你已经引用了其他类,可以用快捷键;
- 有两个包中的类无需导入,直接使用。一个是本包的类,一个是java.lang,比如system是属于lang包。
- 如果一个类申明为public,要求类名和文件名必须一致,该类可以跨包使用
- 如果没有申明为public,类名和文件名可以不一致,但不能跨包使用。
- 如果导入两个包,且包里都有相同类名,则要在每次使用这个类的时候,同时声明包名,既 包名 . 类名;
包:就是文件夹
- 作用:可以通过包,组织相关的类。
- 可以通过包,做信息隐藏。
对象的行为(对象有特征,有行为)
静态行为,静态变量,成员行为,成员变量
package OO0909;
/**
*
* @author Administrator
*
*/
public class Product {
/**产品名称*/
public String productName;
/*价格*/
public int price;
//方法
public void wash(){
System.out.println("洗衣服");
}
/**
* 加法运算
* @param a 被加数
* @param b 加数
* @return 和
*/
public static int add(int a, int b){
System.out.println(a+b);
return a+b;//
}
public void speak(){
System.out.println(this.productName+" "+this.price);
}
}
键值对
package OO0909;
import java.io.FileReader;//导入FileReader方法包
import java.util.Properties;//导入Properties包
public class ProTest1 {
public static void main(String[] args) {
// TODO 创建资源文件对象
Properties pro1 = new Properties();
try{
pro1.load(new FileReader("info.txt"));//通过Properties导入“info。TXT”文件
}catch(Exception e){
System.out.println("文件不存在");//否则输出文件不存在
}
String str = pro1.getProperty("money");//使用String str来接收查找到的mon
System.out.println(str);
pro1.setProperty("name","19000");