Java基础第五节,类与对象的特征

第五章 类与对象的特征

构造方法的特征:方法名和类名一致,没有返回值:没有void:作用是创建对象,new对象的时候调用;作用:给成员变量赋值,如果没有显示赋值按照默认走。系统会给:数字为0,引用为null;Boolean为false

静态变量和实例变量的区别:(static修饰的变量叫静态变量,所有的静态变量或方法都属于类,使用static修饰的变量和方法  推荐使用类名直接调用  类名.变量名 只能调用静态的,通过new 对象的方式都可以调用 既可以调 非静态的 又可以调用静态的)

String name;
int age;
public work6(String name, int age) {
    this.name = name;
    this.age = age;
}
public static void main(String[] args) {
    work6 p = new work6("qq",11);
    p.name="aaaa";
    p.age=11;

    System.out.println(p.name+p.age);
}

1:首先在语法定义上区别:静态变量前面要加static,实例变量不用

2:在程序运行时:

实例变量输入对象的属性,必须创建了实例对象(如 new)才会被分配空间,才可以 使用实例变量,静态变量不属于某个实例对象,而是属于类,也叫类变量,只要程序加 载了类的字节码,不用创建任何实例对象就会被分配空间,就可以被使用

3:总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用 类名来引用。

注意:(static)静态变量的使用也是有局限性的,一个静态方法中不能调用类中的非静态 的方法和变量,static修饰的变量在类加载后在内存中只有一份内存空间,可以被一个 类的所有实例对象所共享,如:总库100张票,4个窗口卖火车票,卖的都是总库里的 票,无论是哪个窗口卖掉的票,总票都会减一。

卖票
static  int ticket;
String  name;
public  void  setTicket(){
    ticket--;
    System.out.println(ticket);
}

public static void main(String[] args) {
    work6.ticket=100;
    work6 p = new work6();
    p.name="aa";
    p.setTicket();
    work6 p1 = new work6();
    p1.name="qq";
    p1.setTicket();
}

方法重载:方法名相同,参数列表不同—参数不同或者参数的数据类型不同或类型的顺 序不同

 public int age;
    public  String stuName;
    public static String teacherName;
    static {
        teacherName="aaa";
        System.out.println("---------");
    }
    public static  void test(){
        // 静态方法中的变量必须是一个静态变量
        System.out.println("老师的名字是"+teacherName);
        //System.out.println("学生的名字是"+stuName);
    }
    public void testPutong(){
        // 普通方法中的变量可以是一个静态变量
        System.out.println("学生的名字是:"+stuName);
        System.out.println("老师的名字是:"+teacherName);
    }
    public void testPutong2(){
        testPutong();
        // 普通方法 可以直接调用静态方法
        test();
    }

    public static void test2(){
        //  静态方法里面调用方法的时候 该方法必须是一个静态方法
        test();
        System.out.println("我是一个静态方法!!!!");
    }
    public work6(){
        System.out.println("构造方法----");
    }
    public static void main(String[] args) {

        work6.teacherName="test";
//        com.yyl.pt.Student.test2();// 类名。方法名

       work6 p = new work6();
        p.stuName="kk";
        p.testPutong2();
    }

Final关键字:修饰变量的时候叫常量只能被赋值一次;

public final class FinalClass {

     final double MY_PI = 3.1415926;

修饰方法的时候方法不能被重写

修饰类的时候类不能被继承

修饰对象的时候对象的引用地址不能发生改变,但是属性可以发生改变

访问权限修饰符:并不是每个修饰符都可以修饰类(指外部类),只有public和default可以。

所有修饰符都可以修饰数据成员,方法成员,构造方法。

为了代码安全起见,修饰符不要尽量使用权限大的,而是适用即可。比如,成员变量,如果没 有特殊需要,尽可能用private.

修饰符修饰的是”被访问”的权限

包:1)为什么需要包?

a:没有包类多的时候不好找,所以包的作用在于管理类。包在磁盘体现上就是文件夹。

b:不同包下的类可以重名(同一目录类不能重名)

c:可以通过包做一些限定

  1. 包的定义语句:

Package 包名 ;

包可以有层级,以.分割

com.aaa 在底层com文件夹 里边嵌套一个aaa文件夹

  1. 跨包请求的时候需要导入包:

import 包名.类名;导入指定类

import 包名.*; 导入本包下所有的类

系统在每一个类中默认导入了lang包——String int .....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值