JAVA语言学习-面向对象(1)
类与对象
类
类是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,即不可访问。另外子类涉及继承,包和继承的内容之后会有介绍)
- 类型修饰符
类型修饰符有final,abstract,static。
类型修饰符用以说明类或类的成员的一些特殊性质。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)的更多相关文章
- [java学习笔记]java语言核心----面向对象之this关键字
一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理: 代表的是当前对象. this就是所在函数 ...
- 第二十五节:Java语言基础-面向对象基础
面向对象 面向过程的代表主要是C语言,面向对象是相对面向过程而言,Java是面向对象的编程语言,面向过程是通过函数体现,面向过程主要是功能行为. 而对于面向对象而言,将功能封装到对象,所以面向对象是基 ...
- 已看1.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架、多线程(并发编程)、I/O(NIO)、Socket、JDBC、XML、反射等。[泛型]\
1.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架.多线程(并发编程).I/O(NIO).Socket.JDBC.XML.反射等.[泛型]\1* ...
- Java语言学习day01--6月28日
Java语言学习day01一:Java概述 1.Java语言发展史 任职于太阳微系统的 詹姆斯·高斯林 等人于1990年代初开发Java语言的雏形,最初被命名为 Oak ,目标设置在 家用电器等小型系 ...
- Java语言学习day02--6月29日
Java语言学习day02###01常用的DOS命令 * A: 常用的DOS命令 * a: 打开Dos控制台 * win+r--cmd--回车 * b: 常用dos命令 * cd.. : 退回到上一级 ...
- [java学习笔记]java语言核心----面向对象之构造函数
1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用: 给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...
- [java学习笔记]java语言核心----面向对象基础
1.面向对象概述 面向对象是java语言的核心.是对应于面向过程而言的. 面向过程:强调的是过程,即动作.在java中动作就是函数.C语言就是面向过程的. 如:把大象装进冰箱需要几步? 答:需要三步: ...
- 关于Java语言和面向对象记录
本科时常用的c语言是面向过程的语言,而Java是面向对象的语言 Java语言的11个关键术语 简单性.可移植性.面向对象.分布式.高性能.解释型.健壮性.多线程.安全性.动态性.体系结构中立 面向对象 ...
- java语言学习笔记1
最近也在春节的节假日里,总是会有各种各样的事情出现,没有很完整的时间来学习java以及其他方面的知识. 从昨天开始有了完整的学习体系,我去娄老师推荐的极客学院网站开始学习java语言的语法.在假期之初 ...
随机推荐
- SSM整合,快速新建javaWeb项目
整合前需要了解: spring和springmvc包扫描的注意事项 Spring applicationContext.xml (父容器),SpringMVC springmvc-servlet.xm ...
- pnpm凭什么这么快
前端包管理器层出不穷,pnpm算是一个后起之秀.它和npm有什么不同,为什么有了npm还要造一个pnpm? npm的问题 npm是最早的包管理器,安装nodejs自带npm,v3版本之前,npm安全依 ...
- day25--Java集合08
Java集合08 15.HashTable 15.1HashTable的基本介绍 存放的元素是键值对:即K-V HashTable的键和值都不能为null HashTable的使用方法基本上和Hash ...
- [CF1515F] Phoenix and Earthquake(图论推导,构造)
题面 在紧张又忙碌地准备联合省选时,发生了大地震,把原本要参赛的 n n n 个城市之间的全部 m m m 条道路震垮了,使得原本互相都能到达的这 n n n 个城市无法交通了.现在,需要紧急恢复 n ...
- [BZOJ3625][CF438E]小朋友和二叉树 (多项式开根,求逆)
题面 题解 设多项式的第a项为权值和为a的二叉树个数,多项式的第a项表示是否为真,即 则,所以F是三个多项式的卷积,其中包括自己: ,1是F的常数项,即. 我们发现这是一个一元二次方程,可以求出,因为 ...
- 关于 JavaScript 中 null 的一切
原文地址:Everything about null in JavaScript 原文作者:Dmitri Pavlutin 译者:Gopal JavaScript 有两种类型:原始类型(strings ...
- iNeuOS工业互联网操作系统,面向4个领域颁发第一批技术认证资质
为了更好的紧密合作.利益多赢和共建生态.iNeuOS工业互联网操作系统面向:仪器仪表.双碳环保.核能科学与工程和钢铁冶金领域颁发第一批技术认证资质,一共21名同志在项目实施过程中表现突出,从iNeuO ...
- JS作用域、变量提升和闭包
作用域 作用域可以理解为JS引擎执行代码的时候,查找变量的规则. 从确定变量访问范围的阶段的角度,可以分为2类,词法作用域和动态作用域.js是词法作用域. 从变量查找的范围的角度,可以分为3类,全局作 ...
- nginx中 location正则的理解
文章转载自:https://blog.csdn.net/wzj_110/article/details/110142902 正则表达式在线测试工具:https://tool.lu/regex loca ...
- Elastic:使用Postman来访问需要账号密码的Elastic Stack