- 浏览: 16719 次
- 性别:
- 来自: 武汉
文章分类
最新评论
继承:
关键字:extends 如:
public class A extends B
这里A是子类,B是父类
子类里面既继承父类的所有的变量与方法,也可以自己在本类中添加新的成员变量与方法。这里就引出子类的方法重写--重写父类里面的方法与super关键字
事例:public class Car {//父类
";//父类成员,并初始化
public String color="黑色";//颜色
public int speed=1;//速度
public int level;//档位
public void shu(int num){
level=num;//换挡
speed =10*level*level;//变速
}
public void drive(){
System.out.println("我是一辆" + color + "的轿车");
System.out.println("现在以时速" + speed +"公里每小时的速度行驶中");
System.out.println("车档位是:" + level + "档");
}
}
//子类
public class ZiCar extends Car {
public void drive(int num) {
super.shu(5);
super.drive();
}
public static void main(String[] args) {
ZiCar zc = new ZiCar();
zc.drive(5);
}
}
修饰符:private public protected和默认权限修饰符,这里主要讲private。
private:是私有权限修饰符,引出封装性定义。
当成员变量设置为私有权限后,其他类不能访问了,必须通过本类定义的设置器方法来设置修改成员变量的值。
事例:
**
* 定义Car类,在该类中定义字符串color和布尔类型的running两个成员变量,并设置它们的访问器与设置器方法。
*
* @author
*/
public class Car {
private String color = "黑色"; // 颜色
private boolean running; // 行驶状态
/**
* 设置color属性值的设置器方法
*
* @param color
* 颜色参数
*/
public void setColor(String color) {
this.color = color; // 把参数color赋值给成员变量color
}
public String getColor() {
return color; // 返回color属性值
}
public boolean isRunning() {
return running; // 返回running属性值
}
public void setRunning(boolean running) {
this.running = running; // 设置成员变量running
}
}
public class Program {
public static void main(String[] args) {
Car whiteCar = new Car(); // 创建Car类的实例对象
whiteCar.setColor("红色"); // 修改该实例中color属性
whiteCar.setRunning(true); // 设置car对象的行驶状态
System.out.println("color属性:" + whiteCar.getColor());
System.out.println("running属性:" + whiteCar.isRunning());
}
}
Object类中的equals方法,toString方法:
事例:
equals():
public class TempClass {
}
public class TestEquals {
public static void main(String[] args) {
String s1 = "123"; // 实例化两个对象,内容相同
String s2 = "123";
System.out.println("s1 equals s2 :" + s1.equals(s2)); // 使用equals()方法调用
TempClass v1 = new TempClass(); // 实例化两个V类对象
TempClass v2 = new TempClass();
System.out.println("v1 equals v2 :" + v1.equals(v2)); // 使用equals()方法比较v1与v2对象
}
}
========================================================================
toString():
public class Obj {
public String toString() { // 重写toString()方法
return "大家好,我是ObjectInstance类的实例对象。";
}
public static void main(String[] args) {
Obj object = new Obj();
System.out.println("输出ObjectInstance实例对象:\n" + object); // 打印本类对象
}
}
多态性:
参数多态
package com.shuohua;
public class Speak {
/*
* 说话的主题类 定义了speak()方法
*/
public void speak(){
System.out.println("不同角色的说话方式");
}
}===============================================
package com.shuohua;
/*
* 魂淡类
*
*/
public class HunDang extends Speak{
/*
* 魂淡的说话方式 重写父类方法
*/
public void speak(){
System.out.println("修真界Boss————————————————");
System.out.println(" 魂淡悠哉悠哉的想说话:");
System.out.println("\t好烦啊---总是那么多妹子找我。。。。");
System.out.println("小龙反应:");
System.out.println("\t艳遇啊,要不给小弟几个。。。。");
System.out.println("===========================================");
}
}
==================================================
package com.shuohua;
public class KongGe extends Speak {
/*
* 空格类 重写父类方法
*/
public void speak(){
System.out.println("魔界至尊:————————————————");
System.out.println(" 某人说走了。。。。空格前辈说:");
System.out.println("\t小樱别走。。。。。");
System.out.println("小龙反应:");
System.out.println("\t好煽情啊,空格前辈!!!");
System.out.println("===========================================");
}
}
==================================================
package com.shuohua;
public class YuLing extends Speak {
/*
* 羽林类 重写父类方法
*/
public void speak(){
System.out.println("仙界老大:——————————");
System.out.println(" 羽灵前辈:");
System.out.println("\t小龙,你在干嘛勒?");
System.out.println("小龙回应:");
System.out.println("\t在听歌勒,不会有没声音吧??!!! 前辈、、、、、");
System.out.println("===========================================");
}
}
=====================================================
package com.lz;
import com.shuohua.*;;//导入说话包
public class Master {
/*
* 这是主人类 它将用于不同的人的话语
*/
public void lz(Speak s){
System.out.println("凡人界小龙菜鸟正在。。。。。中-----各界反应:");
s.speak();
}
}=======================================================
package com.lz;
import com.shuohua.HunDang;//导入魂淡类
import com.shuohua.KongGe;//导入空格类
import com.shuohua.YuLing;//导入羽林类
public class YunXing {
public static void main(String[] args) {
HunDang hd = new HunDang();
KongGe kg = new KongGe();
YuLing yl = new YuLing();
Master m = new Master();
System.out.println("各界人马就绪:\n=================================");
m.lz(yl);
m.lz(kg);
m.lz(hd);
System.out.println("\t小龙忽悠忽悠的路过。。。。。");
}
}
抽象类:关键字--abstract
直接事例吧!
//抽象类 Shape
public abstract class Shape {
public String getName() {//获取图形名称
return this.getClass().getSimpleName();
}
public abstract double getArea();//获取图形面积---抽象方法。需要在子类里面实现方法
}
======================================================================
public class Circle extends Shape {//继承抽象父类
private double radius;//声明私有变量成员
public Circle(double radius) {//获取图形半径
this.radius = radius;
}
public double getArea() {//计算面积
return Math.PI * Math.pow(radius, 2);
}
}
=====================================================================================
public class Rectangle extends Shape {
private double length;
private double width;
public Rectangle(double length, double width) {//获取长与宽
this.length = length;
this.width = width;
}
@Override
public double getArea() {//计算面积
return length * width;
}
}
=========================================================================
public class Test {//测试类
public static void main(String[] args) {
//创建各自类的对象
Circle circle = new Circle(1);
System.out.println("图形的名称是:" + circle.getName());
System.out.println("图形的面积是:" + circle.getArea());
Rectangle rectangle = new Rectangle(1, 1);
System.out.println("图形的名称是:" + rectangle.getName());
System.out.println("图形的面积是:" + rectangle.getArea());
}
}
接口:关键字----interface
接口也是抽象类!
而类实现的关键字---implements
继承由于不能一个子类多重继承几个父类,而接口正好却能够实现,一个类能多重实现多个接口类
事例就不必细说了。
提升事例篇:
1.单例模式的应用
public class Emperor {
private static Emperor emperor = null;
private String name = "我是皇帝";
private Emperor() {// 把构造方法私有化
}
public static Emperor getInstance() {// 定义获取实例的方法
if (emperor == null) {// 确保只创建一个实例对象
emperor = new Emperor();
}
return emperor;
}
public void setName(String name) {// 修改name成员变量的方法
this.name = name;
}
public void sayInfo() {// 输出信息的方法
System.out.println(name + ":有事奏来,无事退朝");
}
}
=====================================================================
public class EmperorTest {
public static void main(String[] args) {
System.out.println("创建皇帝1对象:");
Emperor emperor1 = Emperor.getInstance();// 获取实例对象
emperor1.sayInfo();// 输出信息
System.out.println("创建皇帝2对象:");
Emperor emperor2 = Emperor.getInstance();// 获取实例对象
emperor2.setName("我是乾隆");// 修改name成员变量
emperor2.sayInfo();// 输出信息
System.out.println("创建皇帝3对象:");
Emperor emperor3 = Emperor.getInstance();// 获取实例对象
emperor3.sayInfo();// 输出信息
}
}
========================================================================
2.重新定义对象的等式判断
public class Cat {
private String name;
private int age;
private double weight;
private String color;
public Cat(String name, int age, double weight, String color) {
this.name = name;
this.age = age;
this.weight = weight;
this.color = color;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
Cat cat = (Cat) obj;
return name.equals(cat.name) && (age == cat.age)
&& (weight == cat.weight) && (color.equals(cat.color));
}
public String getInfo() {
StringBuilder sb = new StringBuilder();
sb.append("名字:" + name + " ");
sb.append("年龄:" + age + " ");
sb.append("重量:" + weight + " ");
sb.append("颜色:" + color + " ");
return sb.toString();
}
}
==============================================================================
public class Demo {
public static void main(String[] args) {
Cat cat1 = new Cat("咖啡猫", 12, 21, "黑色"); // 创建第1个猫咪对象
Cat cat2 = new Cat("波斯猫", 12, 21, "白色"); // 创建第2个猫咪对象
Cat cat3 = new Cat("咖啡猫", 12, 21, "黑色"); // 创建第3个猫咪对象
System.out.println("猫咪1号:" + cat1.getInfo()); // 输出每个猫咪对象的属性
System.out.println("猫咪2号:" + cat2.getInfo());
System.out.println("猫咪3号:" + cat3.getInfo());
System.out.println("猫咪1号是否与猫咪2号相同:" + cat1.equals(cat2));
System.out.println("猫咪1号是否与猫咪3号相同:" + cat1.equals(cat3));
}
}
关键字:extends 如:
public class A extends B
这里A是子类,B是父类
子类里面既继承父类的所有的变量与方法,也可以自己在本类中添加新的成员变量与方法。这里就引出子类的方法重写--重写父类里面的方法与super关键字
事例:public class Car {//父类
";//父类成员,并初始化
public String color="黑色";//颜色
public int speed=1;//速度
public int level;//档位
public void shu(int num){
level=num;//换挡
speed =10*level*level;//变速
}
public void drive(){
System.out.println("我是一辆" + color + "的轿车");
System.out.println("现在以时速" + speed +"公里每小时的速度行驶中");
System.out.println("车档位是:" + level + "档");
}
}
//子类
public class ZiCar extends Car {
public void drive(int num) {
super.shu(5);
super.drive();
}
public static void main(String[] args) {
ZiCar zc = new ZiCar();
zc.drive(5);
}
}
修饰符:private public protected和默认权限修饰符,这里主要讲private。
private:是私有权限修饰符,引出封装性定义。
当成员变量设置为私有权限后,其他类不能访问了,必须通过本类定义的设置器方法来设置修改成员变量的值。
事例:
**
* 定义Car类,在该类中定义字符串color和布尔类型的running两个成员变量,并设置它们的访问器与设置器方法。
*
* @author
*/
public class Car {
private String color = "黑色"; // 颜色
private boolean running; // 行驶状态
/**
* 设置color属性值的设置器方法
*
* @param color
* 颜色参数
*/
public void setColor(String color) {
this.color = color; // 把参数color赋值给成员变量color
}
public String getColor() {
return color; // 返回color属性值
}
public boolean isRunning() {
return running; // 返回running属性值
}
public void setRunning(boolean running) {
this.running = running; // 设置成员变量running
}
}
public class Program {
public static void main(String[] args) {
Car whiteCar = new Car(); // 创建Car类的实例对象
whiteCar.setColor("红色"); // 修改该实例中color属性
whiteCar.setRunning(true); // 设置car对象的行驶状态
System.out.println("color属性:" + whiteCar.getColor());
System.out.println("running属性:" + whiteCar.isRunning());
}
}
Object类中的equals方法,toString方法:
事例:
equals():
public class TempClass {
}
public class TestEquals {
public static void main(String[] args) {
String s1 = "123"; // 实例化两个对象,内容相同
String s2 = "123";
System.out.println("s1 equals s2 :" + s1.equals(s2)); // 使用equals()方法调用
TempClass v1 = new TempClass(); // 实例化两个V类对象
TempClass v2 = new TempClass();
System.out.println("v1 equals v2 :" + v1.equals(v2)); // 使用equals()方法比较v1与v2对象
}
}
========================================================================
toString():
public class Obj {
public String toString() { // 重写toString()方法
return "大家好,我是ObjectInstance类的实例对象。";
}
public static void main(String[] args) {
Obj object = new Obj();
System.out.println("输出ObjectInstance实例对象:\n" + object); // 打印本类对象
}
}
多态性:
参数多态
package com.shuohua;
public class Speak {
/*
* 说话的主题类 定义了speak()方法
*/
public void speak(){
System.out.println("不同角色的说话方式");
}
}===============================================
package com.shuohua;
/*
* 魂淡类
*
*/
public class HunDang extends Speak{
/*
* 魂淡的说话方式 重写父类方法
*/
public void speak(){
System.out.println("修真界Boss————————————————");
System.out.println(" 魂淡悠哉悠哉的想说话:");
System.out.println("\t好烦啊---总是那么多妹子找我。。。。");
System.out.println("小龙反应:");
System.out.println("\t艳遇啊,要不给小弟几个。。。。");
System.out.println("===========================================");
}
}
==================================================
package com.shuohua;
public class KongGe extends Speak {
/*
* 空格类 重写父类方法
*/
public void speak(){
System.out.println("魔界至尊:————————————————");
System.out.println(" 某人说走了。。。。空格前辈说:");
System.out.println("\t小樱别走。。。。。");
System.out.println("小龙反应:");
System.out.println("\t好煽情啊,空格前辈!!!");
System.out.println("===========================================");
}
}
==================================================
package com.shuohua;
public class YuLing extends Speak {
/*
* 羽林类 重写父类方法
*/
public void speak(){
System.out.println("仙界老大:——————————");
System.out.println(" 羽灵前辈:");
System.out.println("\t小龙,你在干嘛勒?");
System.out.println("小龙回应:");
System.out.println("\t在听歌勒,不会有没声音吧??!!! 前辈、、、、、");
System.out.println("===========================================");
}
}
=====================================================
package com.lz;
import com.shuohua.*;;//导入说话包
public class Master {
/*
* 这是主人类 它将用于不同的人的话语
*/
public void lz(Speak s){
System.out.println("凡人界小龙菜鸟正在。。。。。中-----各界反应:");
s.speak();
}
}=======================================================
package com.lz;
import com.shuohua.HunDang;//导入魂淡类
import com.shuohua.KongGe;//导入空格类
import com.shuohua.YuLing;//导入羽林类
public class YunXing {
public static void main(String[] args) {
HunDang hd = new HunDang();
KongGe kg = new KongGe();
YuLing yl = new YuLing();
Master m = new Master();
System.out.println("各界人马就绪:\n=================================");
m.lz(yl);
m.lz(kg);
m.lz(hd);
System.out.println("\t小龙忽悠忽悠的路过。。。。。");
}
}
抽象类:关键字--abstract
直接事例吧!
//抽象类 Shape
public abstract class Shape {
public String getName() {//获取图形名称
return this.getClass().getSimpleName();
}
public abstract double getArea();//获取图形面积---抽象方法。需要在子类里面实现方法
}
======================================================================
public class Circle extends Shape {//继承抽象父类
private double radius;//声明私有变量成员
public Circle(double radius) {//获取图形半径
this.radius = radius;
}
public double getArea() {//计算面积
return Math.PI * Math.pow(radius, 2);
}
}
=====================================================================================
public class Rectangle extends Shape {
private double length;
private double width;
public Rectangle(double length, double width) {//获取长与宽
this.length = length;
this.width = width;
}
@Override
public double getArea() {//计算面积
return length * width;
}
}
=========================================================================
public class Test {//测试类
public static void main(String[] args) {
//创建各自类的对象
Circle circle = new Circle(1);
System.out.println("图形的名称是:" + circle.getName());
System.out.println("图形的面积是:" + circle.getArea());
Rectangle rectangle = new Rectangle(1, 1);
System.out.println("图形的名称是:" + rectangle.getName());
System.out.println("图形的面积是:" + rectangle.getArea());
}
}
接口:关键字----interface
接口也是抽象类!
而类实现的关键字---implements
继承由于不能一个子类多重继承几个父类,而接口正好却能够实现,一个类能多重实现多个接口类
事例就不必细说了。
提升事例篇:
1.单例模式的应用
public class Emperor {
private static Emperor emperor = null;
private String name = "我是皇帝";
private Emperor() {// 把构造方法私有化
}
public static Emperor getInstance() {// 定义获取实例的方法
if (emperor == null) {// 确保只创建一个实例对象
emperor = new Emperor();
}
return emperor;
}
public void setName(String name) {// 修改name成员变量的方法
this.name = name;
}
public void sayInfo() {// 输出信息的方法
System.out.println(name + ":有事奏来,无事退朝");
}
}
=====================================================================
public class EmperorTest {
public static void main(String[] args) {
System.out.println("创建皇帝1对象:");
Emperor emperor1 = Emperor.getInstance();// 获取实例对象
emperor1.sayInfo();// 输出信息
System.out.println("创建皇帝2对象:");
Emperor emperor2 = Emperor.getInstance();// 获取实例对象
emperor2.setName("我是乾隆");// 修改name成员变量
emperor2.sayInfo();// 输出信息
System.out.println("创建皇帝3对象:");
Emperor emperor3 = Emperor.getInstance();// 获取实例对象
emperor3.sayInfo();// 输出信息
}
}
========================================================================
2.重新定义对象的等式判断
public class Cat {
private String name;
private int age;
private double weight;
private String color;
public Cat(String name, int age, double weight, String color) {
this.name = name;
this.age = age;
this.weight = weight;
this.color = color;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
Cat cat = (Cat) obj;
return name.equals(cat.name) && (age == cat.age)
&& (weight == cat.weight) && (color.equals(cat.color));
}
public String getInfo() {
StringBuilder sb = new StringBuilder();
sb.append("名字:" + name + " ");
sb.append("年龄:" + age + " ");
sb.append("重量:" + weight + " ");
sb.append("颜色:" + color + " ");
return sb.toString();
}
}
==============================================================================
public class Demo {
public static void main(String[] args) {
Cat cat1 = new Cat("咖啡猫", 12, 21, "黑色"); // 创建第1个猫咪对象
Cat cat2 = new Cat("波斯猫", 12, 21, "白色"); // 创建第2个猫咪对象
Cat cat3 = new Cat("咖啡猫", 12, 21, "黑色"); // 创建第3个猫咪对象
System.out.println("猫咪1号:" + cat1.getInfo()); // 输出每个猫咪对象的属性
System.out.println("猫咪2号:" + cat2.getInfo());
System.out.println("猫咪3号:" + cat3.getInfo());
System.out.println("猫咪1号是否与猫咪2号相同:" + cat1.equals(cat2));
System.out.println("猫咪1号是否与猫咪3号相同:" + cat1.equals(cat3));
}
}
相关推荐
Java的设计目标是具有简单性、面向对象、健壮性、安全性、平台独立性等特性,这使得它成为开发跨平台应用程序的理想选择。 【毕向东老师的Java教学】 毕向东老师是中国知名的Java教育专家,他的教学风格深入浅出,...
Java编程基础及应用是计算机科学领域中的重要主题,尤其对于初学者来说,它是入门软件开发的必经之路。Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle Corporation的一部分)在1995年发布...
这本书的内容丰富多样,涵盖了从基础概念到高级特性的全面教程,旨在帮助开发者提升Java编程技能。由于是PDF格式,读者可以方便地在各种设备上阅读和查阅。 1. **Java简介**:书中首先介绍了Java的历史、特点和运行...
从提供的文档内容来看,这是一份关于Java语言的基础理论知识,涵盖了Java的核心概念、类与对象的使用、接口、数组操作、异常处理等多个方面的知识点。以下是对文档内容中关键知识点的详细阐述: 1. Java基础语法:...
在本套《2020老杜最新Java零基础视频教程课件》中,主要针对的是完全没有编程背景或Java知识的初学者。课程内容全面,旨在帮助这些学员建立起坚实的Java编程基础,为他们进入Java开发领域铺平道路。以下是本教程涉及...
这份PPT包含了丰富的Java基础知识,旨在帮助学习者系统地掌握这门广泛应用于软件开发、互联网服务和大数据处理的编程语言。 在Java教学过程中,PPT可能会涵盖以下关键知识点: 1. **Java概述**:介绍Java的历史、...
3. **封装、继承和多态**:这是面向对象编程的三大特性。封装隐藏了对象的实现细节,提供公共接口供外部访问;继承允许子类从父类继承属性和方法,实现代码复用;多态则是指同一种行为在不同对象上有不同的表现形式...
这个基础篇教程可能会包含这些内容的实例代码、练习题和解析,帮助初学者逐步掌握Java编程基础,为进一步学习Java进阶知识和实际项目开发奠定坚实基础。通过系统学习并实践教程中的内容,你可以熟练地运用Java进行...
3. **类与对象**:讲解面向对象编程的基本概念,包括类的定义、对象的创建与使用,以及封装、继承、多态三大特性。 4. **数组与集合框架**:详细阐述一维与多维数组的使用,以及ArrayList、LinkedList、HashSet、...
《java2实用教程》涵盖了Java语言的基础知识和一些高级特性,适合初学者系统学习Java编程。以下是书中各章节的知识点总结: 第一章:JAVA语言入门 1.1 JAVA的诞生:介绍了Java语言的历史背景,它是由Sun ...
这份文档可能包含了从基础语法到高级特性的全面讲解,旨在帮助读者深入理解Java语言,并能够熟练地运用它进行软件开发。 Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现已被甲骨文公司收购)于...
首先,笔记介绍了IT行业,帮助读者理解行业背景,对比了C、C++和Java三种编程语言的特性。Java语言因其跨平台性、自动内存管理(垃圾回收)以及丰富的类库而被广泛使用。 接着,笔记深入讲解了JDK(Java ...
16. **Java EE基础**:简述Java企业版(Java EE),包括Servlet、JSP和MVC设计模式等Web开发基础。 本教程全面覆盖了Java的基础知识,适合初学者系统学习。每个章节都应结合实例代码进行实践,以加深理解。此外,...
Java私塾基础入门电子书是针对初学者...这本书可能会涵盖以上这些主题,通过实例和练习帮助读者逐步掌握Java编程的基础知识。通过系统学习,初学者可以建立起坚实的语言基础,为后续的进阶学习和实际项目开发做好准备。
231、Java语言的11个关键特性. 54 232、说出Servlet的生命周期,并说出Servlet和CGI的区别。 55 233、说出在JSP页面里是怎么分页的? 55 234、存储过程和函数的区别 55 235、事务是什么? 55 236、游标的作用?如何...
14. **Java的高级特性**:如枚举、注解、泛型、Lambda表达式(Java 8新增)、Optional类等。 15. **Java的并发编程**:涵盖线程池、Future、Callable接口,以及Java并发包(java.util.concurrent)中的高级工具。 ...
由于其“一次编写,到处运行”的特性,Java在软件开发领域得到了广泛应用,尤其在网络应用、移动应用、企业级应用等方面表现突出。 清华大学的Java教程是一套为初学者设计的学习资源,旨在帮助新手快速掌握Java编程...
《JAVA大学简明教程》是一本面向初学者的JAVA编程指南,旨在帮助读者从零基础开始,逐步掌握JAVA这门强大的编程语言。本教程通过易懂的语言和丰富的实例,使学习过程更为直观和有趣。 首先,JAVA作为一种面向对象的...
《Java核心技术》是Java开发人员必读的经典教材,尤其对于初学者和希望深入理解...通过学习这两卷内容,开发者不仅可以掌握Java编程的基础,还能进一步了解和运用Java的高级特性,为成为专业的Java开发者奠定坚实基础。
在Java中,面向对象主要涉及三大核心概念:封装、继承和多态。封装是将数据和操作数据的方法绑定在一起,形成一个独立的单元,以提高代码的安全性和可维护性。在Java中,我们通过类来实现封装,通过private、public...