java三大特性基础简述(实例)

继承:
关键字: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));
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值