第08章 对象和包

本章重点:
1、对象以及对象的成员
2、访问控制符
3、重载和包
4、Java的注释

对象有3个主要特征:行为、状态、标识符。

public class newClass{
void print(){
System.out.println("我是一名优秀的程序员");
}
public static void main(String[] args){
newClass nc = new newClass();
nc.print();
}
}

成员方法实际上就是函数,而函数拥有自己的特性,在定义方法时必须遵照下面的结构:
返回值类型 方法名(形式参数){
方法体;
}

public class newClass{
void print(){
System.out.println("我是一名优秀的程序员");
}
int numPrint(int x){
return 2*x;
}
public static void main(String[] args){
newClass nc = new newClass();
nc.print();
System.out.println("我的年龄:" + nc.numPrint(18));
}
}

所谓的访问控制符就是能够控制访问权限的关键字。
Java控制符有如下几种:
1、类访问控制符:public、default。
public :在所有类中的访问。
default:在同一包中的类可以访问。

2、成员变量与成员方法的访问控制符:private、public、default、protected。
private :说明这个变量只能在类的内部被访问,类的外部是不能被访问的。
public :说明这个变量所有的类都可以访问。
default :说明只有同一个包中的类才能访问。
protected:不仅同一个包中的类可以访问,并且位于其他包中的子类也可以访问。

public class oneObj{
public static void main(String[] args){
twoObj to = new twoObj();
to.print(2);
System.out.println(2* to.x);
}
}
class twoObj{
public int x=1;
public void print(int y){
System.out.println(2*y);
}
}

在Java中,同一个类中的许多方法可以拥有同一个名字,只要它们的参数声明不同即可,
这种方法就称为重载(overloaded),此过程被称为方法重载(method overloading)。
1、方法名相同。
2、参数个数可以不同
3、参数类型可以不同
public class methodOverLoading{
public static void main(String[] args){
methodOverLoading method = new methodOverLoading();
method.test();
method.test(2);
method.test("明白函数重载了吗?");
}
void test(){
System.out.println("无参数");
}

void test(int a){
System.out.println(a*2);
}
void test(String a){
System.out.println(a);
}

}

“包”机制是Java中特有的,也是Java中最基础的知识之一。
在Java程序语言中,为了开发方便,会将多个功能相似的类放到一个组内,而这个组就是“包”,包就像一个目录结构。
声明一个包必须使用关键字“package”。

在Java中调用其他包中的公用类,可以使用两种方式:

import java.util.Date;
public class DatePA{
public static void main(String[] args){
System.out.println(new Date()); //配合import java.util.Date使用
System.out.println(new java.util.Date()); //直接调用包使用,不推荐使用。
}
}

静态导入:
在以前版本的Java语法中,关键字import只能导入一个类或包中的所有类,而最新特性中还可以导入静态方法和静态域。
import static 包名.类名.*;
例如:
import static java.lang.System.*;
out.println("test"); 等价于 System.out.println("test");

如何打包:
javac -d . StaticClass.java
javac -d . StaticImport.java //“.” 表示当前目录

package com.cjg.StaticImport;
public class StaticClass{
public static int MAX = 100;
public static void daying(int x){
System.out.println(x);
}
}

import static com.cjg.StaticImport.StaticClass.*;
import static java.lang.Math.abs;
public class StaticImport{
public static void main(String[] args){
System.out.println(MAX);
daying(5);
}
}

时间: 2024-10-07 23:14:49

第08章 对象和包的相关文章

(入门篇 NettyNIO开发指南)第四章-TIP黏包/拆包问题解决之道

熟悉TCP编程的读者可能都知道,无论是服务端还是客户端,当我们读取或者发送消息的时候,都需要考虑TCP底层的粘包/拆包机制.木章开始我们先简单介绍TCP粘包/拆包的基础知识,然后模拟一个没有考虑TCP粘包/拆包导致功能异常的案例,最后通过正确例米探讨Netty是如何解决这个问题的.如果你已经熟悉了TCP粘包和拆包的相知识,建议你直接跳到代码讲解小节,看Netty是如何解决这个问题的.本章主要内容包: TCP粘包/拆包的基础知识 没考虑TCP粘包/拆包的问题案例 使用Netty解决读半包问题 4.

JavaScript权威指南第08章 函数

函数 在javascript中,函数是对象,所以可以给函数设置属性,可以调用他们的方法. 8.1函数定义 function 函数名(参数列表){ 语句内容 } 函数命名规则 1.字母之间用下划线 like_this() 2.非首字母的单词首字母大写 likeThis() 嵌套函数 在函数里面定义函数 8.2函数调用 函数调用的4种方法 1.函数 2.方法 3.构造方法 4.apply call 简介调用 8.3函数的实参和形参 8.4作为值的函数 8.5作为命名空间的函数 8.6闭包 8.7函数

第08章 泛型

1 /***************** 2 ***第08章 泛型 3 *******知识点: 4 **************1.泛型定义 5 **************2.泛型使用 6 ******************2.1 普通泛型 7 ******************2.2 类型通配符 8 ******************2.3 受限泛型 9 ******************2.4 泛型接口.类.方法 10 ******************2.5 泛型数组 11 *

第08章 二叉树

二叉树 1.为什么要使用二叉树? 二叉树结合了有序数组快速查找和线性链表快速插入删除的优势. 树是一种既能像有序数组一样实现快速查询,又能像链表一样实现快速地插入和删除的数据结构. 2.有关树的几个术语 路径:从一个节点走到另一个节点,过程中数据的排列叫做路径. 根:一个树只有一个根,只有子节点,没有父节点. 父节点:每个节点都向上连接的节点叫做父节点,根没有父节点,一个子节点只有一个父节点. 子节点:每个节点都向下连接的一个或者多个节点叫做子节点. 子树:每个节点都可以作为子树的根,子节点的节

JavaScript学习08 Cookie对象

JavaScript学习08 Cookie对象 JavaScript Cookie Cookie对象: Cookie是一种以文件的形式保存在客户端硬盘的Cookies文件夹中的用户数据信息(Cookie数据). Cookie文件由所访问的Web站点建立,以长久的保存客户端与Web站点间的会话数据,并且该Cookie数据只允许被所访问的Web站点进行读取. Cookie文件的格式: NS:Cookie.txt IE:用户名@域名.txt 有两种类型的cookie: (1)持久性cookie,会被存

《Java并发编程实战》第三章 对象的共享 读书笔记

一.可见性 什么是可见性? Java线程安全须要防止某个线程正在使用对象状态而还有一个线程在同一时候改动该状态,并且须要确保当一个线程改动了对象的状态后,其它线程能够看到发生的状态变化. 后者就是可见性的描写叙述即多线程能够实时获取其它线程改动后的状态. *** 待补充   两个工人同一时候记录生产产品总数问题 1. 失效数据 可见性出现故障就是其它线程没有获取到改动后的状态,更直观的描写叙述就是其它线程获取到的数据是失效数据. 2. 非原子64位操作 3. 加锁与可见性 比如在一个变量的读取与

perl 第十四章 Perl5的包和模块

第十四章 Perl5的包和模块 by flamephoenix 一.require函数  1.require函数和子程序库  2.用require指定Perl版本二.包  1.包的定义  2.在包间切换  3.main包  4.包的引用  5.指定无当前包  6.包和子程序  7.用包定义私有数据  8.包和系统变量  9.访问符号表三.模块  1.创建模块  2.导入模块  3.预定义模块 一.require函数    用require函数可以把程序分割成多个文件并创建函数库.例如,在myfi

Objective-C 编程全解-第04章 对象的类型和动态绑定

第04章 对象的类型和动态绑定 Objective-C的一个重要特征就是动态性,本章将对Objective-C的动态类型(dynamic typing)和动态绑定(dynamic binding)进行说明. 4.1 动态绑定 4.1.1 什么是动态绑定 Objective-C中的消息是在运行时才去绑定的.运行时系统首先会确定接受者的类型(动态类型识别),然后根据消息名在类的方法列表里选择相应的方法执行,如果没有找到就到父类中去继续寻找,假如一直找到NSObject也没有找到就要调用的方法,就会报

java基础 第一章 对象入门

第1章 对象入门 "为什么面向对象的编程会在软件开发领域造成如此震憾的影响?" 面向对象编程(OOP)具有多方面的吸引力.对管理人员,它实现了更快和更廉价的开发与维护过程.对分析与设计人员,建模处理变得更加简单,能生成清晰.易于维护的设计方案.对程序员,对象模型显得如此高雅和浅显.此外,面向对象工具以及库的巨大威力使编程成为一项更使人愉悦的任务.每个人都可从中获益,至少表面如此. 如果说它有缺点,那就是掌握它需付出的代价.思考对象的时候,需要采用形象思维,而不是程序化的思维.与程序化设