Java类

类:结构/框架
实例:结构+数据(来源于现实世界),于是在虚拟世界中建立了对象
类变量:静态数据+动态行为(对数据的操作)


构造方法
与类同名,无返回值,在new后执行
目的:初始化成员变量,创建实例

构造方法的4种访问权限:

  1. public:任何类都能够创建这个类的实例对象
  2. protected:只有这个类的子类及与该类在同一个包的类可以创建这个类的实例对象
  3. private:没有其他类可以实例化该类
  4. 不指定访问权限(default/package):只有与该类在同一个包的类可以创建这个类的实例对象

Java在编译时给没有定义构造方法的类自动加入了一个特殊的构造方法,这个方法不带参数且方法体为空,称为类默认的构造方法,其用默认值初始化对象的成员变量


包装/封装
用private/public等访问权限决定引用程度
public:全开,private:全闭
将getter方法或setter方法配合private一起使用,达到半开半闭的效果

private String password;
		public void changePW(String newPW)
		{	password=newPW;	}//setter方法
		public String getPW()
		{	return password; }

对象创建与初始化

  1. 声明对象变量:以SomeClass objectVar的形式声明保存该对象引用的变量,将来可以通过该变量对对象进行操作;声明并没有创建对象,系统只是为该变量分配一个引用空间
  2. 对象的实例化:通过使用new SomeClass(),为对象分配空间执行new运算符后的构造方法完成对象的初始化,并返回该对象的引用
    再细化分为3步:分配对象所需要的内存空间,并初始化为0值(或false/null);执行显示初始化(即执行在类成员声明时带有的简单赋值表达式);执行构造方法
    eg:Point origin=new Point(21,45);//创建Point类的对象

对象的清除

  • Java运行系统会在确定某个对象不再被使用时自动将其删除,这个过程称为垃圾收集
  • Java中的垃圾收集器周期性地释放不再被引用的对象所占有的内存,自动执行内存回收,对于一个对象,程序中可能存在多个引用,只有对该对象的所有引用都进行删除,垃圾收集器才能回收这个对象;
  • 在产生大量废弃对象的代码段后或在需要大量内存的代码段前,可以调用System.gc()显示进行垃圾收集

权限修饰符的作用范围

修饰符\权限同一个类同一个包子类全局
private
default
protected
public

this的使用

  1. 指向本实例(实际上,在一个对象的方法被调用执行时,Java会自动给对象的变量和方法都加上this引用;因此在有些情况下使用this可能是多余的)
class MyDate
 			{
 				int year;
 				int month;
 				public MyDate(int year,int month,int day)
 				{
 					this.year=year;//加了this,使得前面的year指向本实例的变量
 				}//不加this的话,两个year都将是局部变量
  1. 调用所在类的构造方法
 public MyDate(int year,int month,int day)
 {
 	this.year=year;
 	this.month=month;
 	this.day=day;
 	hour=0;
 	minute=0;
 	second=0;
 }
 public MyDate(int year,int month,int day,int hour,int minute,int second)
 {
 	this(year,month,day);//构造方法里可以用this调用另一个构造方法
 	this.hour=hour;
 }

equals()方法
Object类的public boolean equals(object obj)方法,比较当前对象的引用是否与obj参数指向同一个对象,是则返回true;
但String,Date,File类和所有包装类(Integer,Long等)都重写该方法,改为比较所指对象的内容
注意:Java中的"=="对于引用型变量,比较的是这两个变量所指对象的地址,所以比较两个字符串str1与str2是否相同,应该使用equals()方法,eg: str1.equals(str2);


final
final是一个关键字,可以用于修饰类,成员变量,成员方法。

  • 它修饰的类不能被继承
  • 它修饰的成员变量是一个常量
  • 它修饰的成员方法是不能被子类重写的

final修饰的常量定义一般都有书写规范,被final修饰的常量名称,所有字母都大写;
final修饰成员变量,必须初始化,初始化有两种(但是不能两个一起初始化)

  1. 显示初始化;
  2. 构造方法初始化

包(package)

  • 为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间,防止命名冲突;同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别
  • 包名以"."为分隔符
    例如,一个Something.java 文件它的内容
    package net.java.util;
    public class Something{

    }
    那么它的路径应该是 net/java/util/Something.java 这样保存的
    把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用
  • 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类

import

  • 为了能够使用某一个包的成员,我们需要在 Java 程序中明确导入该包。使用 “import” 语句可完成此功能
  • 在 java 源文件中 import 语句应位于 package 语句之后,所有类的定义之前,可以没有,也可以有多条
    注意:如果在一个包中,一个类想要使用本包中的另一个类,那么该包名可以省略
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值