Java学习-第一天(上)
来源:互联网 发布:手机如果申请淘宝店铺 编辑:程序博客网 时间:2024/04/26 11:36
面向对象
变量的使用规则
对比三个程序:
public class Test1{ static int i; public static void main(String[] args) { for ( i = 0 ; i < 10 ; i++) System.out.println("Hello"); }}
public class Test2{ int i; public static void main(String[] args) { for( i = 0 ; i < 10 ; i++) System.out.println("Hello"); }}
public class Test3{ public static void main(String[] args) { for( int i = 0 ; i < 10 ; i++) System.out.println("Hello"); }}
三个程序运行结果完全相同,但是程序的效果则大有差异,第三个程序最符合软件开发规范。
在程序中使用局部变量,也应该尽可能的缩小局部变量的作用范围,局部变量的作用范围越小,它在内存里停留的时间就越短,程序运行性能就越好。
隐藏和封装
什么是封装?
封装是面向对象编程语言对客观世界的模拟,指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。
两个含义:
把该隐藏的隐藏起来,把该暴露的暴露出来。
访问控制符
访问控制级别大小:
private < default < protected < public
private(当前类访问权限):如果类的一个成员(Field 方法 构造器)使用 private 修饰,则这个成员之恩那个在当前类的内部被访问。修饰 Field 最合适, 就可以把 Field 隐藏在该类的内部。
default(包访问权限):default 访问控制的成员或外部类可以被相同包下的其他类访问。
protected(子类访问权限):protected 访问控制的成员既可以被同一个包中的其他类访问,也可以被不同包中的子类访问,在通常情况下,如果使用 protected 来修饰一个方法,通常是希望其子类来重写这个方法。
public(公共访问权限):public 访问控制的成员或外部类可以被所有类访问。
局部变量作用域就是它所在的方法,不可能被其他类访问,因此不能使用访问控制符进行修饰
对于外部类而言,只有两种访问控制符:public 和 default
Person 类
public class Person{ private String name; private int age; public void setName(String name) { //设置name } public String getName() { return this.name; } public void setAge(int age) { //设置age } public int getAge() { return this.age; }
在 Person类之外只能通过各自对应的 set 和 get 方法来操作和访问它们。
一个类往往就是一个小的模块,我们应该只让这个模块公开必须让外界知道的内容,而隐藏其他一切内容。进行程序设计时,应尽量避免一个模块直接操作和访问另一个模块的数据,模块设计追求高内聚(尽可能把模块的内部数据和功能实现细节隐藏在模块内部独立完成,不允许外部直接干预)和低耦合(仅暴露少量的方法给外部使用)。
什么是包?
package import 和 import static
Java引入包(package)机制,提供了类的多层命名空间,用于解决类的命名冲突和类文件管理等问题。
package 语句必须作为源文件的第一条非注释语句,一个源文件只能指定一个包,可以定义多个类,这些类将全部位于该包下。
父包中的类需要使用子包中的类,必须使用子包的全名
//使用 import 语句导入单个类import package.ClassName;
//使用 import 语句导入指定包下全部类import package *;
星号(*)只能代表类,不能代表包。所以使用上述语句时,如需导入子包中的类,则需使用:
import package.subpackage.*;
import static :用于导入指定类的某个静态 Field 或方法 或全部静态 Filed 或方法。
//单个import static package.ClassName.fieldName|methodName;
//全部import static package.ClassName.*;
例子:
import static java.lang.System.*;import static java.lang.Math.*;public class StaticImportTese{ public static void main(String[] args) { //out是java.lang.System类的静态Field //PI是java.lang.Math类的静态Field out.println(PI); //直接调用Math类的sqrt静态方法 out.println(sqrt(256)); }}
Java源文件大体结构:
package 语句 //0个或多个,文件开始import | import static 语句 //0个或多个,所有类定义前public calssDefinition | interfaceDefinition //0个或1个public类或接口类classDifinition | interfaceDefinition //0个或多个普通类或接口定义
- Java学习-第一天(上)
- java学习第一天
- Java学习第一天
- java学习第一天
- Java学习第一天
- 学习Java第一天
- 第一天学习java
- java学习第一天
- 学习JAVA第一天
- JAVA学习第一天
- Java 学习第一天
- java学习第一天
- JAVA学习第一天
- java学习第一天
- JAVA 学习第一天
- 学习Java第一天
- java学习第一天
- JAVA 学习第一天
- 【jzoj5045】【无限棋盘】【哈希】
- vs远程调试方法
- 九度OJ题目1000:计算a+b
- 代码阅读: style-transfer
- “区块链”究竟是什么?
- Java学习-第一天(上)
- SSH整合 项目启动突然报错 log4j listener 找不到jar包 class not found
- mstsc远程登录windows服务器
- 百度地图二实现小蓝单车标记车辆位置功能
- IP分类介绍以及本机ip(例如10.10.152.8)、127.0.0.1和0.0.0.0区别
- LeetCode (Integer to Roman)
- Spring-AOP-通知-环绕通知
- Android开发
- 226. Invert Binary Tree的C++解法