类与对象

类是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

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

JAVA语言学习-面向对象(1)的更多相关文章

  1. [java学习笔记]java语言核心----面向对象之this关键字

    一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理:         代表的是当前对象.         this就是所在函数 ...

  2. 第二十五节:Java语言基础-面向对象基础

    面向对象 面向过程的代表主要是C语言,面向对象是相对面向过程而言,Java是面向对象的编程语言,面向过程是通过函数体现,面向过程主要是功能行为. 而对于面向对象而言,将功能封装到对象,所以面向对象是基 ...

  3. 已看1.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架、多线程(并发编程)、I/O(NIO)、Socket、JDBC、XML、反射等。[泛型]\

    1.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架.多线程(并发编程).I/O(NIO).Socket.JDBC.XML.反射等.[泛型]\1* ...

  4. Java语言学习day01--6月28日

    Java语言学习day01一:Java概述 1.Java语言发展史 任职于太阳微系统的 詹姆斯·高斯林 等人于1990年代初开发Java语言的雏形,最初被命名为 Oak ,目标设置在 家用电器等小型系 ...

  5. Java语言学习day02--6月29日

    Java语言学习day02###01常用的DOS命令 * A: 常用的DOS命令 * a: 打开Dos控制台 * win+r--cmd--回车 * b: 常用dos命令 * cd.. : 退回到上一级 ...

  6. [java学习笔记]java语言核心----面向对象之构造函数

    1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用:                给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...

  7. [java学习笔记]java语言核心----面向对象基础

    1.面向对象概述 面向对象是java语言的核心.是对应于面向过程而言的. 面向过程:强调的是过程,即动作.在java中动作就是函数.C语言就是面向过程的. 如:把大象装进冰箱需要几步? 答:需要三步: ...

  8. 关于Java语言和面向对象记录

    本科时常用的c语言是面向过程的语言,而Java是面向对象的语言 Java语言的11个关键术语 简单性.可移植性.面向对象.分布式.高性能.解释型.健壮性.多线程.安全性.动态性.体系结构中立 面向对象 ...

  9. java语言学习笔记1

    最近也在春节的节假日里,总是会有各种各样的事情出现,没有很完整的时间来学习java以及其他方面的知识. 从昨天开始有了完整的学习体系,我去娄老师推荐的极客学院网站开始学习java语言的语法.在假期之初 ...

随机推荐

  1. Python自学教程8-数据类型有哪些注意事项

    不知不觉,python自学教程已经更新到第八篇了,再有几篇,基本的语法就介绍完了. 今天来总结一下数据类型有哪些需要注意的地方. 元组注意事项 元组是另一种经常使用到的数据类型,看上去和列表差不多.它 ...

  2. vs完整编译Opencv+contrib

    准备条件 Opencv源码(以4.3.0为例) OpenContrib源码(以4.3.0)为例 最新版的CMake GUI CMake 生成项目 设置source code 和生成的build文件夹 ...

  3. ubuntu20.4 sgx环境配置

    一.driver安装 1.在该下载地址将3个.bin文件下载下来,下载地址:https://download.01.org/intel-sgx/latest/linux-latest/distro/u ...

  4. 解决报错:axios is not defined

    好家伙,来解决报错:axios is not defined 写前端嘛,修bug,不寒颤 进入页面一片空白 来看看报错: 1.axios在安装时:npm install axios --save-de ...

  5. java的数据类型分为两大类

    java的数据类型分为两大类 基本类型(primitive type) 数据类型 整数类型 byte占一个字节范围:-128-127 short占两个字节范围:-32768-32767 int占四个字 ...

  6. HCIA-STP原理与配置

    STP协议生成树协议: 为了保证网络可靠,所以在组网时需要设置冗余链路和设备,从而在物理结构上形成结构,又因为交换机的工作特点导致二层网络中产生广播风暴和MAC地址表震荡现象,影响用户体验. 广播风暴 ...

  7. .Net7 内容汇总(1)

    .Net7 RC1发布 在9月14号,.Net7 RC1正式发布了. 按照微软的说法 This is the first of two release candidates (RC) for .NET ...

  8. 使用django_registration框架实现用户的注册与激活

    1.前言 本节内容是在以下环境中实现的. python version: 3.7 Django version: 3.1.1 Django-registration version: 3.1.1 如版 ...

  9. std:move() 作用 和 移动语义后 右值行为,unique_ptr的"移动"操作问题

    unique_ptr 不能进行赋值操作,但是可以有返回unique_ptr的函数,由此产生的问题: 结论1:std:move() 只是将一个实参强行转换为右值引用. 我们知道对象初始化时有 构造函数, ...

  10. nginx+uwsgi+flask

    说明:没用虚拟环境 安装nginx,并新建一个conf配置文件,启动nginx # xxx.conf server { listen 80; server_name localhost; locati ...