这一节的内容是为引入继承的概念
要想了解并熟练使用继承,首先要知道下面这些概念:
1.类的定义:
具有相同属性 和 共同行为的 一组 对象的集合就叫类。
对象:该类下 真实存在的一个具体实例。
类里定义了 该类下对象应该拥有的属性和行为。
2.类的组成部分:
属性(private),
方法(行为方法+get/set方法),
构造器(全参+无参),
代码块,不常用
(内部类)没用过
3.成员变量 VS 局部变量
全局变量--局部变量,成员变量/实例变量:
A.声明的位置不同:
成员变量 :方法外,类里面
局部变量 :方法里,结构块里
B.作用的范围不同:
成员变量:本类下直接使用;其他类 对象名.成员变量
局部变量: 声明变量开始,到包裹的结构块结束
C.优先级:局部变量> 成员变量
D.默认值:
成员变量有默认值,声明后 可以不赋值就使用;
局部变量没有默认值,声明后 必须赋值 才可以使用。
E.内存地址不同:
成员变量:在堆里
局部变量:在栈里
F.作用时间/生命周期:
成员变量:从对象创建---到对象销毁
局部变量:从声明变量开始---到该方法执行结束。
G:同名问题:
作用范重复的时候,不可以有两个同名的局部变量;
可以有同名的成员变量 和 局部变量存在。
4.this关键字: 代表/意思 作用 使用场合/应用
代表:类下某一个具体的实例对象。 this.成员信息。
作用:this 可以用来调用 属性,方法,构造器
this.属性;--->用来区分同名的局部变量和 成员变量。
this.方法();
this(); ---调用无参构造方法;只能出现在[构造方法中]
使用场合: 构造器里, this.属性=值;this();---必须是第一行
5.static 关键字:
static静态的,特点:A.提前加载,先于对象存在;B.属于整个类的资源---类名.静态资源名;
作用:修饰 属性,方法,代码块,内部类
static修饰的属性 叫类变量/静态变量
该类下 所有对象[共用]静态变量;
VS
没有static修饰的属性 叫实例变量/成员变量
该类下 一个对象 对应自己的一套实例变量。
static 修饰方法: 静态方法/类方法
A,静态方法: 可以【直接调用】 其他静态方法 和静态变量
如果想要调用非静态方法 和非静态变量 ,需要创建当前类对象,
对象名.非静态方法 和非静态变量
6.代码块 { }
分类:
普通代码块(方法里的),---作用:划分作用域
public void showFors(){
{
int i = 0;
for (; i <= 10; i++) {
System.out.println(i);
}
}
for (int i = 0; i <=15 ; i++) {
}
}
构造代码块(类里面,方法外面),
{//在实例化,初始化之前,如果需要做一些逻辑代码的编写,放在构造代码块里。
System.out.println("我是构造代码块");
}
静态代码块(类里面,方法外面,static修饰),
static{//静态代码块的作用:在类加载的时候,如果需要写一些逻辑代码,可以放在静态代码块里。
System.out.println("我是构造代码块");
}
同步代码块(今天不讲,线程讲)
7.包
作用: A.分门别类存储java类 B.区分同名类 C.解决权限问题(默认权限修饰符,只能同包使用)。
使用包: [创建包]--包的命名规则:
a。包名全小写
b。包直接的包含关系,通过.来表示
c。一般包名是公司的域名倒着,不同模块下,在加上模块名
d.不能使用系统关键字:nul,con,com1...com9
[声明包] == 告诉程序 类所在的位置;
==注意: package com.jr.www.demo2.pac03; 必须是当前类的第一行非注释行代码。
package com.jr.www.demo2.pac03;
[导入包] == 导入当前工具类;
import java.util.Scanner; ---导进一个类
import java.util.*; ---导进当前包下的所有类
java.sql.Date dt1=new java.sql.Date();
===有一个系统包,很特殊,程序自己导入;java.lang;
静态导入:一个类下全是静态资源
import static java.lang.Math.*;

被折叠的 条评论
为什么被折叠?



