java 类和对象

1,定义规则

定义类

        限定符  class   类名称{ 

                                 属性/静态属性;

                                 构造方法(必须要有,如果没有,系统默认定义一个无参构造);

                                  方法/静态方法;

                                   }

(1)属性

            限定符    变量类型    变量名

(2)构造方法

           限定符   类名称(形参列表){执行语句}

(3)方法

           限定符   返回值类型    方法名称  (形参列表){执行语句}

2,实例化对象的语法

最常见创建对象的方法是使用new语句

Student student = new student();

(1)new 关键字,计算对象内存大小,在堆中申请内存空间,把空间都初始化为0X0;

(2)执行构造方法      对属性进行初始化;

(3)把对象的引用赋值给一个引用变量;

3,访问对象属性或调用对象的方法

(1)在同一个类中访问对象和调用对象的方法

访问属性              this.属性名

调用对象             this.方法名称  (实参列表)

(2)在其他类中访问对象或调用对象的方法

访问属性            对象的引用.属性名

                          Person  p= new person();   p.name;

                          new Person().name;

调用对象            对象的引用 .  方法名称(实参列表)

                         Person  p = new  person();   p.toString();

                         new Person().toString();

这里要注意:一个类中只能遇一个public类,该类的名称必须与类名称一致;

                      一个类只会生成一个class字节码文件

 4,This关键字的作用

(1)可以在构造方法中调用其他构造方法,必须出现在第一行

(2)代表该方法被调用时当前对象的引用 

 

我们必须知道:在静态方法(静态上下文)中,无法使用This关键字,因为没有一个隐式的对象和该方法绑定;

       1)不能访问普通属性

        2)不能调用普通方法

5,面向对象的三大特征

封装,继承,多态

6,理解类和对象的内存模型

类信息存在    方法区

属性信息        堆区

7,访问修饰符

在Java语言中有4中访问修饰符:package(默认)、private、public和protected。

1。package是默认的保护模式,又加做包访问,没有任何修饰符时就采用这种保护模式。包访问允许域和方法被同一个包内任何类的任何方法访问.(包内访问)。

2。private标识得访问模式,表示私有的域和方法只能被同一个类中的其他方法访问,实现了数据隐藏;必要时,可以通过方法访问私有变量.(类内访问)。

3。public修饰符用于暴露域和方法,以便在类定义的包外部能访问它们。对包和类中必要的接口元素,也需要使用这个级别;main()方法必须是public的,toString()方法也必须是public的。一般不会用public暴露一个域,除非这个域已经被声明为final。(跨包访问)。

4。protected修饰符提供一个从包外部访问包(有限制)的方法。在域和方法前增加protected修饰符不会影响同一个包内其他类的方法对它们的访问。要从包外部访问包(其中含有protected成员的类),必须保证被访问的类是带有protected成员类的子类。也就是说,希望包中的一个类被包之外的类继承重用时,就可以使用这个级别。一般应该慎用。(包中类被包外类继承慎用)。

8, 属性初始化

1 .属性初始化:(发生在对象实例化时)

    (1)定义时初始化

     (2)构造代码块

      (3)在构造方法中初始化   

2 . 静态属性的初始化:(发生在类被加载时)

       (1)定义初始化时

       (2)静态构造代码块

public class A {
	A() {
		a = 30;
	}
	
	{
		a = 0;
		}
	int a = init();
	{
		a = 20;
		}
	
	
	int init() {
		return 10;
	}
	
	static {
		staticA = 100;
	}
	static int staticA = staticInit();
	static {
		staticA = 300;
	}
	
	static int staticInit() {
		return 200;
	}
	
	
	public static void main(String[] args) {
		A p = new A();
		A q = new A();
	}
}

 

  

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值