类与对象

类是JAVA语言中重要的复合型数据类型()。类的实现包括两个部分:成员变量和成员方法("方法"可以看作是C语言中的函数)

类的声明

要使用类,首先得对其声明。声明一个类其实就是创建一种新的数据类型。我们利用声明的类来定义类实例,即来获得一个对象。

声明类的语法有

[类修饰符] class <类名>{
//类的内容
}

例1

public class FirstDemo{  //public为访问控制修饰符,FirstDemo为类名
private String str; //str为成员变量
public void setPrac(String str){ //setPrac为成员方法(下getPrac同)
this.str=str;
}
public String getPrac(){
return str;
}
}

类成员的访问控制

  • 访问控制修饰符

类或类的成员需要定义其作用域,即可访问范围。

如例1中"public",它是类FirstDemo的访问控制修饰符,表示类FirstDemo可以被JAVA中的其他类访问使用。

其他常用的访问控制修饰符和其作用域有:

修饰符\可访问范围 同一类 同一包 不同包中的子类 不同包中的非子类
public Y Y Y Y
protected Y Y Y N
default Y Y N N
private Y N N N

("Y"表示YES,即可访问,"N"表示NO,即不可访问。另外子类涉及继承,包和继承的内容之后会有介绍)

  • 类型修饰符

类型修饰符有finalabstractstatic

类型修饰符用以说明类或类的成员的一些特殊性质。final和abstract主要与类的继承性质有关(之后会介绍)

现在主要讲static:

在一个类中,使用static来修饰的变量和方法(类成员)分别称为类(静态)变量和类(静态)方法,没有使用的就称为实例变量和实例方法。

类成员属于这个类而不属于这个类的某个对象,它由这个类所创建的所有对象所共有。实例成员则由每一个对象所独有。

不同对象之间,它们的实例成员互相独立,可以怎么说,任何一个对象改变了自己的实例成员只会影响这个对象本身,而非其他对象中的实例成员。

对实例成员而言,它只能通过对象来访问,而不能通过类名来访问,类成员则可直接通过类名访问。

例2

public class Test{//测试对实例成员和类成员的不同访问形式
static int i=1;
int j=1;
static void printStactic(){
System.out.println("i="+i);//System.out.println("j="+j);为非法访问
}
void print(){
System.out.println("i="+i);
System.out.println("j="+j);
}
public static void main(String[] args){
Test.printStatic()//Test.print();为非法访问
Test.i=2;//Test.j=2;为非法访问
Test test= new Test();//声明实例化对象test
test.i=3;
test.j=3;
test.print();
test.printStatic();
}
}

例2运行结果

i=1

i=3

j=3

i=3

未完待续(内容如有错误请指正)

最新文章

  1. C# 的TCP Socket (同步方式)
  2. CSS3媒体查询能检测到的特性小结
  3. 【BZOJ 4569】【SCOI 2016】萌萌哒
  4. September 4th 2016 Week 37th Sunday
  5. LinQ的一些基本语句
  6. HDU 5405 (树链剖分+线段树)
  7. Codeforces Round #280 (Div. 2) E. Vanya and Field 数学
  8. Java多线程(二) 多线程的锁机制
  9. Java环境变量的配置及意义
  10. [Javascript] Add a browser build to an npm module
  11. 新手讲树:证明任意二叉树度为零的节点n0,永远比度为2的节点n2多1个
  12. document.querySelectorAll遍历(forEach小解)
  13. mysql语句的一个问题
  14. JTAG各类接口针脚定义及含义
  15. 学习python及Pygame的安装及运行
  16. 根据ip,实现地址信息查询接口
  17. var_dump() 查看字符的类型 方法
  18. Ubuntu下apache2启动、停止、重启、配置
  19. Android通知栏的高度获取
  20. 通过java解析域名获得IP地址

热门文章

  1. Spring 10: AspectJ框架 + @Before前置通知
  2. 五 工厂方法模式【Factory&#160;Method&#160;Pattern】&#160;来自CBF4LIFE 的设计模式
  3. 经纬度转换为距离单位km的方法
  4. limits.conf 配置不生效问题排查
  5. mysql_阻塞和死锁
  6. QT学习(三)
  7. 继GitHub的Copilot收费后,亚马逊推出了 CodeWhisperer,感觉不错哟!
  8. 获取Docker容器名称和ID
  9. CentOS7.9 yum方式安装redis最新版
  10. 创建Grafana Dashboard