参悟Java基础核心技术_尚硅谷_宋红康
尚硅谷_宋红康_第5章_高级类特性2
关键字static
使用范围:
在Java类中,可用static修饰属性、方法、代码块、内部类
被修饰后的成员具备以下特点:
随着类的加载而加载 优先于对象存在
修饰的成员,被所有对象所共享 访问权限允许时,可不创建对象,直接被类调用
name:Lilei age:21 country:
类方法
因为不需要实例就可以访问static方法,因此static方法内部不 能有this。(也不能有super ? ) 重载的方法需要同时为static的或者非static的。
class Person { private int id; private static int total = 0; public static void setTotalPerson(int total){ this.total=total; //非法,在static方法中不能有this,也不能有super } public Person() { total++; id = total; }} public class TestPerson { public static void main(String[] args) { Person.setTotalPerson(3); } }
if(instance == null){ instance = new Singleton(); } return instance;
暂时懒汉式还存在线程 安全问题,讲到多线程 时,可修复
} }
举例:ng.Runtime
public class TestStatic { public static void main(String[] args) { Circle c1 = new Circle(2.0); Circle c2 = new Circle(3.0); c1.display(); c2.display(); } }
面向对象之类的结构与关键字
class DataSwap{ public int a; public int b; } public class TestTransfer1 { public static void swap(DataSwap ds){ int tmp = ds.a; ds.a = ds.b; ds.b = tmp; System.out.println("swap方法里,a Field的值是" + ds.a + ";b Field的值是" + ds.b); } public static void main(String[] args) { DataSwap ds = new DataSwap(); ds.a = 6; ds.b = 9; swap(ds); System.out.println("交换结束后,a Field的值是" + ds.a + ";b Field的值是" + ds.b); } }
方法的参数传递 —基本数据类型的参数传递
方法的参数传递 —引用数据类型的参数传递
方法的参数传递 —引用数据类型的参数传递
方法的参数传递
public class TestTransfer { public static void swap(int a , int b){ int tmp = a; 请输出结果 a = b; b = tmp; System.out.println("swap方法里,a的值是" + a + ";b的值是" + b); } public static void main(String[] args) { int a = 6; int b = 9; swap(a , b); System.out.println("交换结束后,变量a的值是" + a + ";变量b的值是" + b); } }
尚硅谷_宋红康_第7章_异常处理
7.3 异常处理机制一
捕获异常的有关信息:
与其它对象一样,可以访问一个异常对象的成员变量或调用它的 方法。
getMessage() 获取异常信息,返回字符串 printStackTrace() 获取异常类名和异常信息,以及异常出
现在程序中的位置。返回值void。
异常名称
说明信息
堆栈信息
7.3 异常处理机制一
...... //当产生ExceptionName1型异常时的处置措施 } catch( ExceptionName2 e ){ ...... //当产生ExceptionName2型异常时的处置措施 } [ finally{ ...... //无论是否发生异常,都无条件执行的语句 }]
7.3 异常处理机制一
7.3 异常处理机制一
异常的抛出机制
为保证程序正常执行,代码必须对可能出现的异常进行处理。
7.3 异常处理机制一
如果一个方法内抛出异常,该异常对象会被抛给调用者方法中处 理。如果异常没有在调用者方法中处理,它继续被抛给这个调用 方法的上层方法。这个过程将一直继续下去,直到异常被处理。 这一过程称为捕获(catch)异常。
finally语句和catch语句是任选的
7.3 异常处理机制一
7.3 异常处理机制一:举例
public class IndexOutExp { public static void main(String[] args) { String friends[] = { "lisa", "bily", "kessy" }; try { for (int i = 0; i < 5; i++) { System.out.println(friends[i]); } } catch (ArrayIndexOutOfBoundsException e) { System.out.println("index err"); } System.out.println("\nthis is the end"); }
尚硅谷_宋红康_第2章_Java基本语法2
静态初始化:在定义数组的同时就为数组元素分配空间并赋 值。 MyDate dates[] = { int a[] = new int[]{ 3, 9, 8}; new MyDate(22, 7, 1964), int[] a = {3,9,8}; new MyDate(1, 1, 2000), new MyDate(22, 12, 1964) }
练习1
1.(1)定义类Pritimive,在类中定义一个有3个元素的boolean类型的 数组t作为其成员变量。数组元素未赋值。 定义类Array1,在Array1的main()方法中创建Pritimive对象d, 输出其成员变量t的三个元素值。 练习目的:检验基本数据类型数组创建时的自动赋值。 (2)给对象d的成员变量t赋值为{true,true,true},并输出t的三个元 素值。 2. 定义类Student,包含三个属性:学号number(int),年级 state(int),成绩score(int)。 创建20个学生对象,学号为1到20,年 级和成绩都由随机数确定,打印出3年级(state值为3)的学生信息。 提示:生成随机数:Math.random(),返回值类型double; 四舍五入取整:Math.round(double d),返回值类型long。
一维数组声明
一维数组的声明方式:
type var[] 或 type[] var; 例如:
int a[]; int[] a1; double b[]; Mydate[] c; //对象数组
Java语言中声明数组时不能指定其长度(数组中元素的数), 例如: int a[5]; //非法
一维数组初始化
0x1234 null null null null null stu[0]= 0x3344
[尚硅谷]_宋红康_Java之23种设计模式解析
[尚硅谷]_宋红康_Java之23种设计模式解析—————————————————————————————题目:Java 之23种设计模式解析一、设计模式概述总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
具体如下:其中创建型有:一、Singleton,单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点二、Abstract Factory,抽象工厂:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类。
三、Factory Method,工厂方法:定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method使一个类的实例化延迟到了子类。
四、Builder,建造模式:将一个复杂对象的构建与他的表示相分离,使得同样的构建过程可以创建不同的表示。
五、Prototype,原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型来创建新的对象。
行为型有:六、Iterator,迭代器模式:提供一个方法顺序访问一个聚合对象的各个元素,而又不需要暴露该对象的内部表示。
七、Observer,观察者模式:定义对象间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知自动更新。
八、Template Method,模板方法:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,TemplateMethod使得子类可以不改变一个算法的结构即可以重定义该算法得某些特定步骤。
九、Command,命令模式:将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队和记录请求日志,以及支持可撤销的操作。
Java 集合体系、IO 体系、多线程、JDBC 经典面试题分析
【面试题】
List、Set、Map存储数据的异同 谈谈 HashMap 在底层存储数据的实现 区分Collection 与 Collections(Collection & Map)的异同 如何实现List、Set、数组间的相互转换
ArrayList list = new ArrayList();
JDBC
一组规范:接口
JDBCMysqlImpl 调用
JDBCOracleImpl
JDBCSQLServerI mpl
HashMap
SortedMap
Properties
LinkedHashMap
TreeMap
Collection 接口方法
集合与数组间转换操作
List接口
List 集合里添加了一些根据索引来操作集合元素的 方法
void add(int index, Object ele) boolean addAll(int index, Collection eles) Object get(int index) int indexOf(Object obj) int lastIndexOf(Object obj) Object remove(int index) Object set(int index, Object ele) List subList(int fromIndex, int toIndex)
RandomAccessFile 类
构造器
public RandomAccessFile(File file, String mode) public RandomAccessFile(String name, String mode)
尚硅谷_宋红康_Java中数组结构及经典排序算法解析
do-while 循环语句
语法格式
[初始化语句] do{ 语句或语句块; [更改语句;] }while(布尔值测试表达式);
应用举例
public class WhileLoop { public static void main(String args[]){ int result = 0, i=1; do{ result += i; i++; }while(i<=100); System.out.println("result=" + result); } }
每个数组都有一个属性length指明它的长度,例如:a.length 指明数组a的长度(元素个数) 数组一旦初始化,其长度是不可变的
经典题目
从键盘读入学生成绩,找出最高 分,并输出学生成绩等级。 成绩>=最高分-10 等级为’A’ 成绩>=最高分-20 等级为’B’ 成绩>=最高分-30 等级为’C’ 其余 等级为 ’D’
注意特殊写法情况:int[] x,y[]; x是一维数组,y是二维数组。 Java中多维数组不必都是规则矩阵形式
int[][] i = new int[3][2];
i[0][1] = 12;
12
i[0]
i[1] i[2]
int[][] i = new int[3][]; i[0] = new int[2]; i[1] = new int[3]; i[2] = new int[4];
分支结构2:switch语句
switch(表达式){ case 常量1: 语句1; break; case 常量2: 语句2; break; …… case 常量N: 语句N; break; default: 语句; break; }
尚硅谷入学测试套题A范本
尚硅谷入学测试套题A范本一、Java基础1.什么是Java?简要描述Java语言的特点和优势。
Java是一种跨平台的高级编程语言,具有简单、面向对象、健壮、安全等特点。
Java的优势在于其跨平台性,可以在不同操作系统上运行,且具有广泛的应用领域。
2.简述Java中的封装性,并给出一个示例。
封装性指的是将数据和处理数据的方法封装在一个类中,并通过访问修饰符进行访问控制。
示例:```javapublic class Student{private String name;private int age;public String getName(){return name;}public void setName(String name){ = name;}public int getAge(){return age;}public void setAge(int age){this.age = age;}}```3.什么是Java的继承?给出一个继承的示例,并解释其中的关键字和概念。
Java的继承是指一个类通过继承另一个类的属性和方法,实现代码复用和扩展的机制。
示例:```javapublic class Animal{protected String name;public void eat(){System.out.println(name + " is eating");}}public class Dog extends Animal{public Dog(String name){ = name;}public void bark(){System.out.println(name + " is barking");}}public class Main{public static void main(String[] args){Dog dog = new Dog("Tommy");dog.eat(); // 输出:Tommy is eatingdog.bark(); // 输出:Tommy is barking}}```在上述示例中,关键字"class Dog extends Animal"表示Dog类继承自Animal类,子类可以使用父类的属性和方法。
Java基础知识总结(超详细整理)
Java基础知识总结(超详细整理)Java语⾔的特点1.⾯向对象⾯向对象(OOP)就是Java语⾔的基础,也是Java语⾔的重要特性。
⾯向对象的概念:⽣活中的⼀切事物都可以被称之为对象,⽣活中随处可见的事物就是⼀个对象,我们可以将这些事物的状态特征(属性)以及⾏为特征(⽅法)提取并出来,并以固定的形式表⽰。
2.简单好⽤Java语⾔是由C和C++演变⽽来的,它省略了C语⾔中所有的难以理解、容易混淆的特性(⽐如指针),变得更加严谨、简洁、易使⽤。
3.健壮性Java的安全检查机制,将许多程序中的错误扼杀在摇蓝之中。
另外,在Java语⾔中还具备了许多保证程序稳定、健壮的特性(强类型机制、异常处理、垃圾的⾃动收集等),有效地减少了错误,使得Java应⽤程序更加健壮。
4.安全性Java通常被⽤在⽹络环境中,为此,Java提供了⼀个安全机制以防恶意代码的攻击,从⽽可以提⾼系统的安全性。
5.平台⽆关性Java平台⽆关性由Java 虚拟机实现,Java软件可以不受计算机硬件和操作系统的约束⽽在任意计算机环境下正常运⾏。
6.⽀持多线程在C++ 语⾔没有内置的多线程机制,因此必须调⽤操作系统的多线程功能来进⾏多线程程序设计,⽽ Java 语⾔却提供了多线程⽀持。
多线程机制使应⽤程序在同⼀时间并⾏执⾏多项任务,该机制使得程序能够具有更好的交互性、实时性。
7.分布式(⽀持⽹络编程)Java语⾔具有强⼤的、易于使⽤的⽹络能⼒,⾮常适合开发分布式计算的程序。
java中提供了⽹络应⽤编程接⼝(),使得我们可以通过URL、Socket等远程访问对象。
8.编译与解释共存Java语法基础标识符: ⽤来标识类名、对象名、变量名、⽅法名、类型名、数组名、⽂件名的有效字符序列。
合法的标识符:由字母、数字、下划线“_”、美元符号“$”或者“¥”组成,并且⾸字符不能是数字。
不能把java关键字和保留字作为标识符。
标识符对⼤⼩写敏感。
关键字:Java语⾔中已经赋予了特定含义的保留字: const、goto,Java版本中尚未使⽤,但以后版本可能会作为关键字使⽤变量:程序运⾏期间可以被改变的量。
尚硅谷_宋红康_参悟Java基础核心技术-精选文档
– 移动领域应用,主要表现在消费和嵌入式领域,是指在各种小型 设备上的应用,包括手机、PDA、机顶盒、汽车通信设备等。
1.从java语言的诞生、特点说起
java之父Jgosling团队在开发”Green”项目时,发现C缺少垃圾回收系 统,还有可移植的安全性、分布程序设计、和多线程功能。最后,他们想 要一种易于移植到各种设备上的平台。 Java确实是从C语言和C++语言继承了许多成份,甚 至可以将Java看成是类C语言发展和衍生的产物。比 如Java语言的变量声明,操作符形式,参数传递,流 程控制等方面和C语言、C++语言完全相同。但同时, Java是一个纯粹的面向对象的程序设计语言,它继承 了 C++语言面向对象技术的核心。Java舍弃了C语言 中容易引起错误的指针(以引用取代)、运算符重载 (operator overloading)、多重继承(以接口 取代)等特性,增加了垃圾回收器功能用于回收不再 被引用的对象所占据的内存空间。JDK1.5又引入了 泛型编程(Generic Programming)、类型安全的 枚举、不定长参数和自动装/拆箱
现实世界中的分子、原子又是由什么构成的呢?原子核、 电子!那么,Java中用类class来描述事物也是如此
属 性:对应类中的成员变量 行 为:对应类中的成员方法 Field = 属性 = 成员变量,Method = (成员)方法 = 函数
Java语言是原生支持多线程的。在Java语言中,线程是一种特殊的 对象,它必须由Thread类或其子(孙)类来创建。
2.从java语言的市场需求来看
2019年2月 TIOBE 编程语言排行榜单
2.从java语言的市场需求来看
2019年2月 TIOBE 编程语言排行榜单
尚硅谷视频打包)
最适合自学的尚硅谷《全套JavaEE视频教程》提示:JavaEE框架视频继续更新中,后续视频虽免费下载,但是需要通过分享才能获得!亲,你已经分享过的,届时直接领取下载密码即可!【视频教程】Java基础阶段:一、佟刚Java基础视频(课堂实录)/share/link?shareid=3688687329&uk=573533038二、尚硅谷Java基础实战——Bank项目/share/link?shareid=3690978764&uk=573533038、三、尚硅谷_ORACLE、SQL、PLSQL 视频教程/s/1ntoaRKt四、尚硅谷JDBC视频教程/share/link?shareid=4245722589&uk=120553861JavaWeb阶段一、尚硅谷_JavaScript DOM编程视频教程/share/link?shareid=4211630709&uk=120553861二、尚硅谷jQuery 视频教程/share/link?shareid=4221820801&uk=120553861三、尚硅谷Ajax视频教程/s/1jGgbgH4四、尚硅谷JavaWeb视频基础(涵盖JavaWEB 企业级开发所需的Servlet、JSP、MVC 设计模式、EL 表达式、JavaBean、国际化、Cookie和HttpSession、JavaMail等全部核心技术。
)/share/link?shareid=4249188148&uk=120553861五、尚硅谷JavaWEB 项目实战(图书商城):/s/1vggwKJavaEE阶段一、尚硅谷Struts2视频教程/s/1eQGbe7o二、尚硅谷Hibernate 4视频教程/s/1hq7hkyg三、尚硅谷Spring 4视频教程(新)/s/1hqmkaQo四、SSH项目:数据采集系统(新)/s/1sjIxnx7更多教程,即将更新…【在线课集锦】一、Java程序员是怎样炼成的!(佟刚老师&老学员,为你指点Java学习、就业那些事)二、Oracle 安装视频、课件三、数据结构--排序那些事儿四、内存解析:Java的值传递机制五、Java工程师—简历制作&求职技巧………………………………………下载地址:/online.shtml【文档及工具】一、Java开发必备软件(含:jdk1.7、eclipse、J2SE6.0帮助文档等…)/s/1FwuIO#二、Oracle客户端&服务端相关软件/s/1c07oMfY#三、Java工程师必知必会.pdf/s/GhP_X/1371521348四、Java常用英语汇总.pdf/s/1o6kDmoM五、计算机常见编码/s/1i3gJAuT【插播公告】尚硅谷《JavaEE+Android+Hadoop》全程就业班,正在报名中…。
115个Java面试题和答案——终极(上)_尚硅谷_宋红康
题目:115个Java面试题和答案——终极(上)本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java 和通用的面向对象编程的能力。
下面的章节分为上下两篇,第一篇将要讨论面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类,垃圾收集器,第二篇主要讨论异常处理,Java小应用程序,Swing,JDBC,远程方法调用(RMI),Servlet和JSP。
目录面向对象编程(OOP)常见的Java问题Java线程Java集合类垃圾收集器面向对象编程(OOP)Java是一个支持并发、基于类和面向对象的计算机编程语言。
下面列出了面向对象软件开发的优点:代码开发模块化,更易维护和修改。
代码复用。
增强代码的可靠性和灵活性。
增加代码的可理解性。
面向对象编程有很多重要的特性,比如:封装,继承,多态和抽象。
下面的章节我们会逐个分析这些特性。
封装封装给对象提供了隐藏内部特性和行为的能力。
对象提供一些能被其他对象访问的方法来改变它内部的数据。
在Java当中,有3种修饰符:public,private和protected。
每一种修饰符给其他的位于同一个包或者不同包下面对象赋予了不同的访问权限。
下面列出了使用封装的一些好处:通过隐藏对象的属性来保护对象内部的状态。
提高了代码的可用性和可维护性,因为对象的行为可以被单独的改变或者是扩展。
禁止对象之间的不良交互提高模块化。
参考这个文档获取更多关于封装的细节和示例。
多态多态是编程语言给不同的底层数据类型做相同的接口展示的一种能力。
一个多态类型上的操作可以应用到其他类型的值上面。
继承继承给对象提供了从基类获取字段和方法的能力。
继承提供了代码的重用行,也可以在不修改类的情况下给现存的类添加新特性。
抽象抽象是把想法从具体的实例中分离出来的步骤,因此,要根据他们的功能而不是实现细节来创建类。
Java支持创建只暴漏接口而不包含方法实现的抽象的类。
尚硅谷宋红康参悟Java基础核心技术ppt课件-文档资料
java语言的主要特性
Java语言是安全的。Java通常被用在网络环境中,为此,Java提供 了一个安全机制以防恶意代码的攻击。如:安全防范机制(类 ClassLoader),如分配不同的名字空间以防替代本地的同名类、 字节代码检查。 Java语言是体系结构中立的。Java程序(后缀为java的文件)在 Java平台上被编译为体系结构中立的字节码格式(后缀为class的文 件),然后可以在实现这个Java平台的任何系统中运行。 Java语言是解释型的。如前所述,Java程序在Java平台上被编译为 字节码格式,然后可以在实现这个Java平台的任何系统的解释器中运 行。 Java是性能略高的。与那些解释型的高级脚本语言相比,Java的性 能还是较优的。
JDBC
集合
类库
IO
网络
何谓“面向对象”的编程思想?
顿 悟?OR 渐 悟?
例子:人把大象装冰箱 1.打开冰箱 2.把大象装进冰箱 3.把冰箱门关住
人{ 打开(冰箱){ 冰箱.开门(); } 操作(大象){ 大象.进入(冰箱); } 关闭(冰箱){ 冰箱.关门(); } } 冰箱{ 开门(){} 关门(){} }
Java基础知识图解
JAVA发展历程 JAVA环境搭建 基础程序设计
Eclipse使用 泛型
数据类型
运算符
流程控制
数组
枚举 装箱/拆箱 可变 参数 JAVA 新特 性 类和 对象 属性
面向对象编程
三大 特性
接口
方法
设计模式
应用程序开发
Annotation
异常处理 多线程 反射
Oracle/MySQL
– 移动领域应用,主要表现在消费和嵌入式领域,是指在各种小型 设备上的应用,包括手机、PDA、机顶盒、汽车通信设备等。
尚硅谷_宋红康_数据结构_排序算法
讲师:宋红康
新浪微博:尚硅谷-宋红康
JavaSE知识图解
JAVA发展历程 JAVA环境搭建 基础程序设计
Eclipse使用 泛型
数据类型
运算符
流程控制
数组
枚举 装箱/拆箱 可变 参数 JAVA 新特 性 类和 对象 属性
面向对象编程
方法
三大 特性
接口
设计模式
应用程序开发
Annotation
直接插入排序、折半插入排序、Shell排序
归并排序 桶式排序 基数排序
InsertSort.java
直接插入排序效率分析
算法的时间效率:在最坏的情况下,所有元素的比较次 数总和为(0+1+2+…+n-1)= ;在其他情况下,
也要考虑移动元素的次数,故时间复杂度为
算法的空间效率:空间效率很高,只需要一个附加程序 单元用于交换,其空间效率为 算法的稳定性:稳定
异常处理 多线程 反射
连接Oracle
JDBC
集合
类库
IO
网络
I ? T?
算法+数据结构=程序
数据结构
编程的本质就是对数据(信息以数据的形式而存在)的 处理,实际编程中不得不处理大量数据,因此实际动手编 程之前必须先分析处理这些数据,处理数据之间存在的关 系。 现实的数据元素之间有着纷繁复杂的逻辑关系,需要采 用合适的物理结构来存储这些数据,并以此为基础对这些 数据进行相应的操作。同时,还要分析这些数据结构在时 间、空间上的开销的优劣。这种专门研究应用程序中数据 之间逻辑关系、存储方式及其操作的学问就是数据结构。
SelectSort2.java
直接选择排序效率分析
尚硅谷_宋红康_第10章_枚举类与注解
第10章枚举类与注解讲师:宋红康新浪微博:尚硅谷-宋红康Java 基础知识图解面向对象编程JDBC Java 发展历程JAVA 环境搭建基础程序设计Eclipse 使用IDEA 使用泛型元注解装箱/拆箱枚举可变参数Lambda表达式Stream APIDate/Time APIJava 新特性Oracle/MySQL 集合IO/NIO 类库多线程异常处理反射网络应用程序开发设计模式接口三大特性类的结构类/对象数据结构排序算法数组流程控制运算符数据类型关键字注解的使用12枚举类的使用10-1 枚举类的使用10.1 枚举类的使用主要内容:●如何自定义枚举类●如何使用关键字enum定义枚举类●Enum类的主要方法●实现接口的枚举类10.1.1 枚举类的使用:入门●类的对象只有有限个,确定的。
举例如下:星期:Monday(星期一)、......、Sunday(星期天)性别:Man(男)、Woman(女)季节:Spring(春节)......Winter(冬天)支付方式:Cash(现金)、WeChatPay(微信)、Alipay(支付宝)、BankCard(银行卡)、CreditCard(信用卡)就职状态:Busy、Free、Vocation、Dimission订单状态:Nonpayment(未付款)、Paid(已付款)、Delivered(已发货)、Return(退货)、Checked(已确认)Fulfilled(已配货)、线程状态:创建、就绪、运行、阻塞、死亡●当需要定义一组常量时,强烈建议使用枚举类●枚举类的实现JDK1.5之前需要自定义枚举类JDK 1.5 新增的enum 关键字用于定义枚举类●若枚举只有一个对象, 则可以作为一种单例模式的实现方式。
●枚举类的属性枚举类对象的属性不应允许被改动, 所以应该使用private final 修饰枚举类的使用private final 修饰的属性应该在构造器中为其赋值若枚举类显式的定义了带参数的构造器, 则在列出枚举值时也必须对应的传入参数1.私有化类的构造器,保证不能在类的外部创建其对象2.在类的内部创建枚举类的实例。
java核心技术·卷i 基础知识第12版中文
Java核心技术·卷I 基础知识第12版中文是一本经典的Java编程语言教程,由Cay S. Horstmann和Gary Cornell合著。
本书深入浅出地介绍了Java语言的基本知识和核心技术,是学习和掌握Java编程语言的重要参考书籍。
本书的主要内容包括Java语言的基本概念、面向对象编程、控制流程、数组、字符串和输入输出等方面的内容。
通过系统而深入的讲解,读者可以逐步掌握Java语言的核心技术,从而成为有经验的Java程序员。
以下是本书内容的主要特点:1.全面系统的介绍了Java编程语言的基本知识和核心技术,包括控制语句、数组、字符串、面向对象编程、异常处理、输入输出等方面的内容。
2.采用了清晰易懂的语言和大量的实例,帮助读者深入理解Java编程语言的各种知识点。
3.提供了丰富的编程实例和练习题,让读者可以通过实际操作巩固所学知识,提升编程能力。
4.涵盖了Java SE 8中新增的特性和改进,使得本书的内容更加贴近当今的Java编程实践。
5.针对初学者的特点,本书在讲解难点的地方进行了重点详细的讲解,在基础内容上有很好的拓展。
通过学习Java核心技术·卷I 基础知识第12版中文,读者可以系统全面地掌握Java编程语言的核心技术,为进一步深入学习和应用Java 语言打下坚实的基础。
本书适合Java初学者和有一定基础的Java程序员阅读,也可以作为Java编程语言的教学参考书。
Java核心技术·卷I 基础知识第12版中文是一本经典的Java编程语言教程,内容丰富全面,深入浅出,适合广大Java学习者阅读。
如果你想系统地学习和掌握Java编程语言的核心技术,那么这本书绝对是你的不二选择!由于Java核心技术·卷I 基础知识第12版中文始终保持着在计算机编程界的经典地位,本书不仅仅是一本教程,更是一部深入探究Java编程核心的著作。
在新的1500字的部分,我们将进一步探讨本书的内容特点和对读者的学习帮助,以及本书面向的读者裙体和实际应用。
第14章_网络编程
功 能 等待客户端的连接请求,返回与该客户端 进行通信用的Socket对象 设置accept()方法等待连接的时间为 timeout毫秒。若时间已到,还没有客户 端连接,则抛出InterruptedIOException异 常,accept()方法不再阻塞,该倾听Socket 可继续使用。若timeout值为0,则表示 accept()永远等待。该方法必须在倾听 Socket创建后,在accept()之前调用才有效。 关闭监听Socket 返回此服务器套接字的本地地址 返回此套接字在其上监听的端口号
服务器建立 ServerSocket 对象
ServerSocket 对象负责等待客户端请求建立套接字连接,类 似邮局某个窗口中的业务员。也就是说,服务器必须事先 建立一个等待客户请求建立套接字连接的ServerSocket对象。 所谓“接收”客户的套接字请求,就是accept()方法会返回 一个 Socket 对象
异常处理 多线程 反射
连接Oracle
JDBC
集合
类库
IO
网络
主要内容
网络编程概述 通讯要素 IP和端口号 网络通信协议 InetAddress类 TCP网络通信 UDP网络通信 URL编程
网络编程概述
• Java是 Internet 上的语言,它从语言级上提供了对网 络应用程序的支持,程序员能够很容易开发常见的 网络应用程序。 • Java提供的网络类库,可以实现无痛的网络连接, 联网的底层细节被隐藏在 Java 的本机安装系统里, 由 JVM 进行控制。并且 Java 实现了一个跨平台的网 络库,程序员面对的是一个统一的网络编程环境。
尚硅谷Java——宋红康笔记【day11-day18】
尚硅⾕Java——宋红康笔记【day11-day18】day11Eclipse中的快捷键:* 1.补全代码的声明:alt + /* 2.快速修复: ctrl + 1* 3.批量导包:ctrl + shift + o* 4.使⽤单⾏注释:ctrl + /* 5.使⽤多⾏注释: ctrl + shift + /* 6.取消多⾏注释:ctrl + shift + \* 7.复制指定⾏的代码:ctrl + alt + down 或 ctrl + alt + up* 8.删除指定⾏的代码:ctrl + d* 9.上下移动代码:alt + up 或 alt + down* 10.切换到下⼀⾏代码空位:shift + enter* 11.切换到上⼀⾏代码空位:ctrl + shift + enter* 12.如何查看源码:ctrl + 选中指定的结构或 ctrl + shift + t* 13.退回到前⼀个编辑的页⾯:alt + left* 14.进⼊到下⼀个编辑的页⾯(针对于上⾯那条来说的):alt + right* 15.光标选中指定的类,查看继承树结构:ctrl + t* 16.复制代码: ctrl + c* 17.撤销: ctrl + z* 18.反撤销: ctrl + y* 19.剪切:ctrl + x* 20.粘贴:ctrl + v* 21.保存: ctrl + s* 22.全选:ctrl + a* 23.格式化代码: ctrl + shift + f* 24.选中数⾏,整体往后移动:tab* 25.选中数⾏,整体往前移动:shift + tab* 26.在当前类中,显⽰类结构,并⽀持搜索指定的⽅法、属性等:ctrl + o* 27.批量修改指定的变量名、⽅法名、类名等:alt + shift + r* 28.选中的结构的⼤⼩写的切换:变成⼤写: ctrl + shift + x* 29.选中的结构的⼤⼩写的切换:变成⼩写:ctrl + shift + y* 30.调出⽣成getter/setter/构造器等结构: alt + shift + s* 31.显⽰当前选择资源(⼯程 or ⽂件)的属性:alt + enter* 32.快速查找:参照选中的Word快速定位到下⼀个:ctrl + k* 33.关闭当前窗⼝:ctrl + w* 34.关闭所有的窗⼝:ctrl + shift + w* 35.查看指定的结构使⽤过的地⽅:ctrl + alt + g* 36.查找与替换:ctrl + f* 37.最⼤化当前的View:ctrl + m* 38.直接定位到当前⾏的⾸位:home* 39.直接定位到当前⾏的末位:end⾯向对象的特征之⼆:继承性 why?⼀、继承性的好处:① 减少了代码的冗余,提⾼了代码的复⽤性② 便于功能的扩展③ 为之后多态性的使⽤,提供了前提⼆、继承性的格式: class A extends B{}A:⼦类、派⽣类、subclassB:⽗类、超类、基类、superclass2.1体现:⼀旦⼦类A继承⽗类B以后,⼦类A中就获取了⽗类B中声明的所有的属性和⽅法。
java核心基础知识
java核心基础知识Java核心基础知识1、先了解什么是Java的四个方面初学者先弄清这些Java的基本概念也是必不可少的,死记硬背肯定是不行的,重在理解,理解它们之间的区别与联系,分别有哪些应用。
想想这些代码中用到了哪些知识点。
不要一味地照着书本敲代码。
而不去理解。
1.Java编程语言,即语法。
2.Java文件格式,即各种文件夹、文件的后缀。
3.Java虚拟机(JVM),即处理_.class文件的解释器。
4.Java应用程序接口(Java API)。
2、掌握静态方法和属性静态方法和属性用于描述某一类对象群体的特征,而不是单个对象的特征。
Java中大量应用了静态方法和属性,这是一个通常的技巧。
但是这种技巧在很多语言中不被频繁地使用。
理解静态方法和属性对于理解类与对象的关系是十分有帮助的,在大量的Java规范中,静态方法和属性被频繁使用。
因此学习者应该理解静态方法和属性。
Java在方法和属性的调用上是一致的,区别只表现在声明的时候,这和c++是不同的。
3、初学者还需明白JAVA的三个技术平台的关系Java分为三个体系,分别为Java SE(J2SE,Java2 Platform StandardEdition,标准版)。
JavaEE(J2EE,Java 2 Platform, Enterprise Edition,企业版)。
JavaME(J2ME,Java 2 Platform Micro Edition,微型版)。
要知道java是分两部分的:一个是编译,一个是运行。
javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序。
对指定扩展名的.java文件进行编译。
生成了jvm可以识别的字节码文件。
也就是class文件,也就是java的运行程序。
java:负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行.一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数。
尚硅谷宋红康Java基础教程2019版
尚硅⾕宋红康Java基础教程2019版day00_编程⼊门_01-尚硅⾕-Java语⾔基础-资料⽂件结构1day00_编程⼊门_02-尚硅⾕-Java语⾔基础-资料⽂件结构2day00_编程⼊门_03-尚硅⾕-Java语⾔基础-⼊门概述day00_编程⼊门_04-尚硅⾕-Java语⾔基础-冯诺依曼体系结构day00_编程⼊门_05-尚硅⾕-Java语⾔基础-CPU和IT⾏业三⼤定律day00_编程⼊门_06-尚硅⾕-Java语⾔基础-持久化存储设备day00_编程⼊门_07-尚硅⾕-Java语⾔基础-bit与byteday00_编程⼊门_08-尚硅⾕-Java语⾔基础-内存day00_编程⼊门_09-尚硅⾕-Java语⾔基础-输⼊输出设备和⽹络连接设备day00_编程⼊门_10-尚硅⾕-Java语⾔基础-计算机史上的两个⿐祖day00_编程⼊门_11-尚硅⾕-Java语⾔基础-操作系统day00_编程⼊门_12-尚硅⾕-Java语⾔基础-万维⽹与软件架构⽅式day00_编程⼊门_13-尚硅⾕-Java语⾔基础-职业发展与提升day00_编程⼊门_14-尚硅⾕-Java语⾔基础-学习经验探讨day01_Java语⾔概述_01-尚硅⾕-Java语⾔基础-Java基础阶段⽬录概述day01_Java语⾔概述_02-尚硅⾕-Java语⾔基础-Java后续学习⼤纲简述day01_Java语⾔概述_03-尚硅⾕-Java语⾔基础-Java主要应⽤场景day01_Java语⾔概述_04-尚硅⾕-Java语⾔基础-Java基础图谱及基础阶段项⽬说明day01_Java语⾔概述_05-尚硅⾕-Java语⾔基础-每天授课须知day01_Java语⾔概述_06-尚硅⾕-Java语⾔基础-图形化界⾯操作与命令⾏操作介绍day01_Java语⾔概述_07-尚硅⾕-Java语⾔基础-常⽤的命令⾏指令day01_Java语⾔概述_08-尚硅⾕-Java语⾔基础-计算机语⾔的划分day01_Java语⾔概述_09-尚硅⾕-Java语⾔基础-不同编程语⾔的介绍day01_Java语⾔概述_10-尚硅⾕-Java语⾔基础-Java语⾔的历史及技术体系平台day01_Java语⾔概述_11-尚硅⾕-Java语⾔基础-Java语⾔的特点day01_Java语⾔概述_12-尚硅⾕-Java语⾔基础-JVM与垃圾收集机制day01_Java语⾔概述_13-尚硅⾕-Java语⾔基础-JDK、JRE、JVM的关系day01_Java语⾔概述_14-尚硅⾕-Java语⾔基础-JDK与JRE的安装day01_Java语⾔概述_15-尚硅⾕-Java语⾔基础-环境变量的配置day01_Java语⾔概述_16-尚硅⾕-Java语⾔基础-配置环境变量中⼏个问题的解决day01_Java语⾔概述_17-尚硅⾕-Java语⾔基础-第⼀个Java程序:HelloWorldday01_Java语⾔概述_18-尚硅⾕-Java语⾔基础-⼏个常见的bug的解决day01_Java语⾔概述_19-尚硅⾕-Java语⾔基础-EditPlus的安装和配置day01_Java语⾔概述_20-尚硅⾕-Java语⾔基础-单⾏注释与多⾏注释day01_Java语⾔概述_21-尚硅⾕-Java语⾔基础-⽂档注释的使⽤day01_Java语⾔概述_22-尚硅⾕-Java语⾔基础-多⾏注释使⽤的⼀个注意点day01_Java语⾔概述_23-尚硅⾕-Java语⾔基础-API⽂档的说明day01_Java语⾔概述_24-尚硅⾕-Java语⾔基础-第⼀个Java程序的总结day01_Java语⾔概述_25-尚硅⾕-Java语⾔基础-Java开发⼯具的说明day02_Java基本语法_01-尚硅⾕-Java语⾔基础-每天⼀考day02_Java基本语法_02-尚硅⾕-Java语⾔基础-复习1day02_Java基本语法_03-尚硅⾕-Java语⾔基础-复习2day02_Java基本语法_04-尚硅⾕-Java语⾔基础-关键字和保留字的说明day02_Java基本语法_05-尚硅⾕-Java语⾔基础-标识符及命名规则day02_Java基本语法_06-尚硅⾕-Java语⾔基础-标识符的命名规范day02_Java基本语法_07-尚硅⾕-Java语⾔基础-变量的定义day02_Java基本语法_08-尚硅⾕-Java语⾔基础-定义变量的注意点day02_Java基本语法_09-尚硅⾕-Java语⾔基础-变量的分类day02_Java基本语法_10-尚硅⾕-Java语⾔基础-整型变量的使⽤说明day02_Java基本语法_11-尚硅⾕-Java语⾔基础-浮点型变量的使⽤说明day02_Java基本语法_12-尚硅⾕-Java语⾔基础-char型变量的使⽤说明day02_Java基本语法_13-尚硅⾕-Java语⾔基础-乱码的情况和字符集的说明day02_Java基本语法_14-尚硅⾕-Java语⾔基础-boolean型变量的使⽤day02_Java基本语法_15-尚硅⾕-Java语⾔基础-⾃动类型提升运算1day02_Java基本语法_16-尚硅⾕-Java语⾔基础-⾃动类型提升运算2day02_Java基本语法_17-尚硅⾕-Java语⾔基础-强制类型转换运算day02_Java基本语法_18-尚硅⾕-Java语⾔基础-变量运算规则的两个特殊情况day02_Java基本语法_19-尚硅⾕-Java语⾔基础-String类型变量的使⽤day02_Java基本语法_20-尚硅⾕-Java语⾔基础-两个关于String的练习题day02_Java基本语法_21-尚硅⾕-Java语⾔基础-String使⽤的强化说明day02_Java基本语法_22-尚硅⾕-Java语⾔基础-不同进制的表⽰⽅式day02_Java基本语法_23-尚硅⾕-Java语⾔基础-⼆进制转换为⼗进制的说明day02_Java基本语法_24-尚硅⾕-Java语⾔基础-⼆进制转换为⼗进制的练习day02_Java基本语法_25-尚硅⾕-Java语⾔基础-⼗进制转⼆进制的操作day02_Java基本语法_26-尚硅⾕-Java语⾔基础-⼆进制与⼋进制⼗六进制间的转换day03_Java基本语法_01-尚硅⾕-Java语⾔基础-每天⼀考day03_Java基本语法_02-尚硅⾕-Java语⾔基础-复习1day03_Java基本语法_03-尚硅⾕-Java语⾔基础-复习2:变量的定义day03_Java基本语法_04-尚硅⾕-Java语⾔基础-复习3:变量的运算规则day03_Java基本语法_05-尚硅⾕-Java语⾔基础-算术运算符的使⽤1day03_Java基本语法_06-尚硅⾕-Java语⾔基础-算术运算符的使⽤2day03_Java基本语法_07-尚硅⾕-Java语⾔基础-算术运算符的练习day03_Java基本语法_08-尚硅⾕-Java语⾔基础-关于敲代码和练指法day03_Java基本语法_09-尚硅⾕-Java语⾔基础-赋值运算符的使⽤day03_Java基本语法_10-尚硅⾕-Java语⾔基础-赋值运算符的课后练习day03_Java基本语法_11-尚硅⾕-Java语⾔基础-⽐较运算符的使⽤day03_Java基本语法_12-尚硅⾕-Java语⾔基础-逻辑运算符的使⽤说明day03_Java基本语法_13-尚硅⾕-Java语⾔基础-逻辑运算符的使⽤测试day03_Java基本语法_14-尚硅⾕-Java语⾔基础-逻辑运算符的课后练习day03_Java基本语法_15-尚硅⾕-Java语⾔基础-左移右移位运算符的使⽤day03_Java基本语法_16-尚硅⾕-Java语⾔基础-其它位运算符的使⽤day03_Java基本语法_17-尚硅⾕-Java语⾔基础-位运算符的练习day03_Java基本语法_18-尚硅⾕-Java语⾔基础-三元运算符的使⽤day03_Java基本语法_19-尚硅⾕-Java语⾔基础-三元运算符与if-else的转换day03_Java基本语法_20-尚硅⾕-Java语⾔基础-运算符的优先级day03_Java基本语法_21-尚硅⾕-Java语⾔基础-关于流程控制的说明day03_Java基本语法_22-尚硅⾕-Java语⾔基础-if-else结构的基本使⽤day04_Java基本语法_01-尚硅⾕-Java语⾔基础-每天⼀考day04_Java基本语法_02-尚硅⾕-Java语⾔基础-复习1:算术与⽐较运算符day04_Java基本语法_03-尚硅⾕-Java语⾔基础-复习2:⽐较与逻辑运算符day04_Java基本语法_04-尚硅⾕-Java语⾔基础-复习3:位运算符与三元运算符day04_Java基本语法_05-尚硅⾕-Java语⾔基础-使⽤Scannner从键盘获取int型数据day04_Java基本语法_06-尚硅⾕-Java语⾔基础-使⽤Scannner从键盘获取多种类型数据day04_Java基本语法_07-尚硅⾕-Java语⾔基础-if-else的例题1day04_Java基本语法_08-尚硅⾕-Java语⾔基础-if-else的例题2day04_Java基本语法_09-尚硅⾕-Java语⾔基础-if-else课后练习1:笔试题day04_Java基本语法_10-尚硅⾕-Java语⾔基础-if-else课后练习2:狗的年龄。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对于class的权限修饰只可以用public和default(缺省)。
public类可以在任意地方被访问。 default类只可以被同一个包内部的类访问。
相应的调用者
public
protected default
private
2.2 面向对象的特征二:继承性
相同的代码 人类
通过“继承”实现
2.从java语言的市场需求来看
2014年 2月 TIOBE 编程语言排行榜单
2.从java语言的市场需求来看
2014年 2月 TIOBE 编程语言排行榜单
二、 如何看待java基础? 如何理解面向对象思想?
Java 基础
深入讲授 java 语言的核心内容:
涵盖 java 的基本语法结构、java的面向对象特征、 java集合框架体系、java泛型、异常处理、java 注 释、java的 io 流体系、java多线程编程、java网 络通信编程和 java 反射机制; 覆盖了ng、 java.util、java.text、 java.io 和 java.nio、java.sql 包下绝大部分 类和接口。 全面介绍 java 7 的二进制整数、菱形语法、增强 switch语句、多异常捕获、自动关闭资源的try语句、 nio.2、aio等新特性。
四种访问权限修饰符
Java权限修饰符public、protected、private置于类的成员定 义前,用来限定对象对该类成员的访问权限。
修饰符 private (缺省) protected public 类内部 Yes Yes Yes Yes 同一个包 Yes Yes Yes Yes Yes Yes 子类 任何地方
IO
反射
网络
何谓“面向对象”的编程思想?
顿 悟?OR 渐 悟?
例子:人把大象装冰箱 1.打开冰箱 2.把大象装进冰箱 3.把冰箱门关住 人 冰箱 大象
人{ 打开(冰箱){ 冰箱.开门(); } 操作(大象){ 大象.进入(冰箱); } 关闭(冰箱){ 冰箱.关门(); } } 冰箱{ 开门(){} 关门(){} }
java语言的主要特性
Java语言是安全的。 Java通常被用在网络环境中,为此, Java提供 了一个安全机制以防恶意代码的攻击。如:安全防范机制(类 ClassLoader),如分配不同的名字空间以防替代本地的同名类、 字节代码检查。 Java语言是体系结构中立的。 Java程序(后缀为 java的文件)在 Java平台上被编译为体系结构中立的字节码格式(后缀为 class的文 件),然后可以在实现这个 Java平台的任何系统中运行。 Java语言是解释型的。如前所述, Java程序在 Java平台上被编译为 字节码格式,然后可以在实现这个 Java平台的任何系统的解释器中运 行。 Java是性能略高的。与那些解释型的高级脚本语言相比, Java的性 能还是较优的。 Java语言是原生支持多线程的。在 Java语言中,线程是一种特殊的 对象,它必须由 Thread类或其子(孙)类来创建。
练习:创建Java自定义类
步骤:
1. 定义类(考虑修饰符、类名) 2. 编写类的属性(考虑修饰符、属性类型、属性名、 初始化值) 3. 编写类的方法(考虑修饰符、返回值类型、方法名、 形参等)
Байду номын сангаас提示:
定义Person、Animal、Bird、Zoo等类,加以体会。
2.面向对象的三大特征
封装 (Encapsulation) 继承 (Inheritance) 多态 (Polymorphism)
大象{ 进入(冰箱){ } }
面向过程
面向对象
学习面向对象内容的三条主线
1.java类及类的成员 2.面向对象的三大特征 3.其它关键字
1.java类及类的成员
现实世界万事万物是由分子、原子构成的。同理,Java代 码世界是由诸多个不同功能的类构成的。 面向对象程序设计的重点是类的设计
现实世界中的分子、原子又是由什么构成的呢?原子核、 电子!那么,Java中用类class来描述事物也是如此 属 性:对应类中的成员变量 行 为:对应类中的成员方法
特有的代码 学生类
特有的代码 教师类
特有的代码 工人类
特有的代码 农民类
继承的思想
人类
继承 (extends)
教师类
学生类
工人类
兽医类
面向对象思想“落地”法则(三)
继承的思想
多个类中存在相同属性和行为时,将这些内容抽取到 单独一个类中,那么多个类无需再定义这些属性和行 为,只要继承那个类即可。
参悟Java基础 核心技术
讲师:宋红康
微信:shkstart
一、 Why is
?
Java在各领域中的应用
• 从Java的应用领域来分,Java语言的应用方向主要表现 在以下几个方面:
– 企业级应用:主要指复杂的大企业的软件系统、各种类型的网站。 Java的安全机制以及它的跨平台的优势,使它在分布式系统领域 开发中有广泛应用。应用领域包括金融、电信、交通、电子商务 等。 – Android平台应用:Android应用程序使用Java语言编写。 Android开发水平的高低很大程度上取决于Java语言核心能力是 否扎实。 – 移动领域应用,主要表现在消费和嵌入式领域,是指在各种小型 设备上的应用,包括手机、PDA、机顶盒、汽车通信设备等。
1.java类及类的成员
如何使用java类?
java类的实例化,即创建类的对象
类(class)和对象(object)是面向对象的核心概念
完成工程需求时: 先去找具有所需功能的对象来用 如果该对象不存在,那么创建一个具有所需功能的对象 这样简化开发并提高复用
类和对象的关系
可以理解为:类 = 汽车设计图;对象 = 实实在在的汽车
java语言的主要特性
Java语言是易学的。 Java语言的语法与 C语言和 C++语言很接近,使 得大多数程序员很容易学习和使用 Java。 Java语言是强制面向对象的。 Java语言提供类、接口和继承等原语, 为了简单起见,只支持类之间的单继承,但支持接口之间的多继承, 并支持类与接口之间的实现机制(关键字为 implements)。 Java语言是分布式的。 Java语言支持 Internet应用的开发,在基 本的 Java应用编程接口中有一个网络应用编程接口( java net), 它提供了用于网络应用编程的类库,包括 URL、 URLConnection、 Socket、 ServerSocket等。 Java的 RMI(远程方法激活)机制也 是开发分布式应用的重要手段。 Java语言是健壮的。 Java的强类型机制、异常处理、垃圾的自动收 集等是 Java程序健壮性的重要保证。对指针的丢弃是 Java的明智选 择。
应该将legs属性保护起来, 防止乱用。 保护的方式:信息隐藏
问题:xb.legs = -1000;
面向对象思想“落地”法则(二)
Java 中通过将数据声明为私有的 (private) ,再提供公 共的(public)方法:getXxx()和setXxx()实现对该属性 的操作,以实现下述目的:
隐藏一个类中不需要对外提供的实现细节; 使用者只能通过事先定制好的方法来访问数据,可以方 便地加入控制逻辑,限制对属性的不合理操作; 便于修改,增强代码的可维护性;
Field = 属性 = 成员变量,Method = (成员 )方法 = 函数
1.java类及类的成员
类的成员构成 version 1.0
语法格式:
定义类的属性:修饰符 类型 属性名 = 初值 ; 定义类的方法:修饰符 返回值类型 方法名 ( 参数列表 ) { 方法体语句; }
类的成员构成 verson 2.0
类的实例化: Car c = new Car();
面向对象思想“落地”法则(一)
使用new +构造器创建一个新的对象;
使用“对象名.对象成员”的方式访问对象成员(包括属性 和方法); 如果创建了一个类的多个对象,对于类中定义的属性,每 个对象都拥有各自的一套副本,且互不干扰。 在一个类中:类中的方法可以直接访问类中的成员变量或 其它方法。(例外:static方法访问非static,编译不通 过。)
public class Animal{ private int legs;//将属性legs定义为private,只能被Animal类内部访问 public void setLegs(int i){ //在这里定义方法 eat() 和 move() if (i != 0 && i != 2 && i != 4){ System.out.println("Wrong number of legs!"); return; } legs=i; } public int getLegs(){ return legs; } } public class Zoo{ public static void main(String args[]){ Animal xb=new Animal(); xb.setLegs(4); //xb.setLegs(-1000); xb.legs=-1000; //非法 System.out.println(xb.getLegs()); } }
Java基础知识图解
JAVA发展历程
JAVA环境搭建
基础程序设计
Eclipse使用 泛型 数据类型
运算符
流程控制
数组
枚举
装箱/拆箱
面向对象编程
类和 对象 属性
三大 特性
可变 参数 Annotation
JAVA 新特 性
方法
接口
设计模式
应用程序开发