This document provides an overview of various Java language concepts including enums, final, static, variable arguments, encapsulation, inheritance, polymorphism, interfaces, and abstract classes. It defines each concept and provides examples to illustrate how they work in Java code. The document is presented as part of a multi-part series on the Java language and object-oriented programming.
OOPS Concepts, Java Evolution, Class Object basic, Class Object Constructor overloading, Inheritance, Array and String, Final Abstract class and interfaces, Exceptions, Streams, GUI Applications, Applet Programming, Network Programming and Java Sockets, Multi Threading
Synapse India Reviews About:
Functional/procedural programming:
program is a list of instructions to the computer
Object-oriented programming
program is composed of a collection objects that communicate with each other
Single Nucleotide Polymorphism Analysis
Predictive Analytics and Data Science Conference May 27-28
Asst. Prof. Vitara Pungpapong, Ph.D.
Department of Statistics
Faculty of Commerce and Accountancy
Chulalongkorn University
OOPS Concepts, Java Evolution, Class Object basic, Class Object Constructor overloading, Inheritance, Array and String, Final Abstract class and interfaces, Exceptions, Streams, GUI Applications, Applet Programming, Network Programming and Java Sockets, Multi Threading
Synapse India Reviews About:
Functional/procedural programming:
program is a list of instructions to the computer
Object-oriented programming
program is composed of a collection objects that communicate with each other
Single Nucleotide Polymorphism Analysis
Predictive Analytics and Data Science Conference May 27-28
Asst. Prof. Vitara Pungpapong, Ph.D.
Department of Statistics
Faculty of Commerce and Accountancy
Chulalongkorn University
Object Oriented Concepts required to know about the Android Application Programming are discussed over here. Get the most of the details about each and every concept of OO paradigm so you can use them very well in Android Application Programming.
UNIT - 2
ARRAY AND ITS TYPES
INHERITANCE AND ITS TYPES
THE SUPER KEYWORD
POLYMORPHISM
ABSTRACT CLASSES
INTERFACES
DECLARING INTERFACES
IMPLEMENTING INTERFACES
EXTENDED INTERFACES
EXTENDING MULTIPLE INTERFACES
PACKAGES
THE IMPORT KEYWORD
THE DIRECTORY STRUCTURE OF PACKAGES
ACCESS SPECIFIER
Presentasi Six Sigma
MM38 Universitas Trisakti
Kelas B
Nilai Kelompok = 80
Kelompok 6:
122110051 – Hari
122110069 – Kartadinata
122110164 – Yuza Aji Putranto
122110053 – Hendrawan Saputro Hadi
122110102 – Rajiman
122110034 – Edward William
122110063 - Ivan Budiman
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaYara Milbes
Discover the transformative power of the WhatsApp API in our latest SlideShare presentation, "Top 7 Unique WhatsApp API Benefits." In today's fast-paced digital era, effective communication is crucial for both personal and professional success. Whether you're a small business looking to enhance customer interactions or an individual seeking seamless communication with loved ones, the WhatsApp API offers robust capabilities that can significantly elevate your experience.
In this presentation, we delve into the top 7 distinctive benefits of the WhatsApp API, provided by the leading WhatsApp API service provider in Saudi Arabia. Learn how to streamline customer support, automate notifications, leverage rich media messaging, run scalable marketing campaigns, integrate secure payments, synchronize with CRM systems, and ensure enhanced security and privacy.
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
In the ever-evolving landscape of technology, enterprise software development is undergoing a significant transformation. Traditional coding methods are being challenged by innovative no-code solutions, which promise to streamline and democratize the software development process.
This shift is particularly impactful for enterprises, which require robust, scalable, and efficient software to manage their operations. In this article, we will explore the various facets of enterprise software development with no-code solutions, examining their benefits, challenges, and the future potential they hold.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
2. Agenda
• 01 Enum
• 02 Final
• 03 Static
• 04 Variable Args
• 05 Encapsulation
• 06 Inheritance
• 07 Polymorphism
• 08 Interfaces
• 09 Abstract Class
• 10 Nested class
• 11 JAR
3. Enum
• Old approach
class Bread {
static final int wholewheat = 0;
static final int ninegrain = 1;
static final int rye = 2;
static final int french = 3;
}
int todaysLoaf = Bread.rye;
4. Enum
• New approach
public enum Bread {
wholewheat,
ninegrain,
rye,
french
}
Bread todaysLoaf = Bread.rye;
5. Enum
• Enum with Constructor
public enum Egg {
small(10),
medium(20),
large(30);
Egg(int size) { this.size = size; }
private int size;
// Setter Getter
}
7. Final
• When a reference variable is declared final, it
means that you cannot change that variable to
point at some other object.
• You can, however, access the variable and
change its fields through that final reference
variable.
• The reference is final, not the referenced object.
8. Final
• Example:
void someMethod(final MyClass c, final int a[]) {
c.field = 7; // allowed
a[0] = 7; // allowed
c = new MyClass(); // NOT allowed
a = new int[13]; // NOT allowed
}
9. Static
• Field which is only one copy
• Also called class variable
• What you can make static:
1. Fields
2. Methods
3. Blocks
4. Class
10. Static - Fields
• Example:
class Employee {
int id; // per-object field
int salary; // per-object field
static int total; // per-class field (one only)
}
11. Static - Fields
• Example:
class EmployeeTest {
public static void main(String[] args) {
Employee h = new Employee();
h.id = 1;
Employee r = new Employee();
r.id = 2;
Employee.total = 10;
h.total; // 10
r.total; // 10
}
}
12. Static - Methods
• Also called class method
• Example:
public static int parseInt(String s) {
// statements go here.
}
int i = Integer.parseInt("2048");
13. Variable Arity – Var Args
• Var Args is optional
• Var Args is an Array
14. Var Args
public class VarArgs {
public static void main(String[] args) {
sum();
sum(1, 2, 3, 4, 5);
}
public static void sum(int … numbers) {
int total = 0;
for (int i = 0; i < numbers.length; i++) {
total += numbers[i];
}
return total;
}
15. Encapsulation
• Imagine if you made your class with public instance
variables, and those other programmers were setting the
instance variables directly
public class BadOO {
public int size;
}
public class ExploitBadOO {
public static void main (String [] args) {
BadOO b = new BadOO();
b.size = -5; // Legal but bad!!
}
16. Encapsulation
• OO good design is hide the implementation
detail by using Encapsulation
• How do you do that?
– Keep instance variables protected (with an access
modifier, often private)
– Make public accessor methods, and force calling
code to use those methods rather than directly
accessing the instance variable
– For the methods, use the JavaBeans naming
convention of set<someProperty> and
get<someProperty>
17. Encapsulation
• Rewrite the class
public class GoodOO {
private int size;
public void setSize(int size) {
if (size < 0) this.size = 0; // does not accept negative
else this.size = size;
}
public void getSize() {
return size;
}
}
public class ExploitGoodOO {
public static void main (String [] args) {
GoodOO g = new GoodOO();
g.setSize(-5); // it’s safe now, no need to worry
}
19. Inheritance
• A class that is derived from another class is
called a subclass (also a derived
class, extended class, or child class)
• The class from which the subclass is derived is
called a superclass (also a base class or
a parent class)
20. Inheritance
• Every class has one and only one direct
superclass (single inheritance), Object
• Classes can be derived from classes that are
derived from classes that are derived from
classes, and so on, and ultimately derived from
the topmost class, Object
21. Inheritance
• The idea of inheritance is simple but powerful:
When you want to create a new class and there
is already a class that includes some of the code
that you want, you can derive your new class
from the existing class
• In doing this, you can reuse the fields and
methods of the existing class without having to
write them yourself
22. Inheritance
• A subclass inherits all the members (fields,
methods, and nested classes) from its
superclass
• Constructors are not members, so they are not
inherited by subclasses, but the constructor of
the superclass can be invoked from the subclass
23. Inheritance
• At the top of the hierarchy, Object is the most
general of all classes. Classes near the bottom
of the hierarchy provide more specialized
behavior
24. Inheritance
public class Bicycle { // PARENT or SUPERCLASS
// the Bicycle class has three fields
private int cadence;
private int gear;
private int speed;
// the Bicycle class has one constructor
public Bicycle(int startCadence, int startSpeed, int startGear) {
gear = startGear; cadence = startCadence; speed = startSpeed;
}
// the Bicycle class has two methods
public void applyBrake(int decrement) {
speed -= decrement;
}
public void speedUp(int increment) {
speed += increment;
}
// Setter Getter
}
25. Inheritance
public class MountainBike extends Bicycle { // CHILD or SUBCLASS
// the MountainBike subclass adds one field
private int seatHeight;
// the MountainBike subclass has one constructor
public MountainBike(int startHeight, int startCadence, int startSpeed, int startGear) {
super(startCadence, startSpeed, startGear);
seatHeight = startHeight;
}
// the MountainBike subclass add one method
public void setHeight(int newValue) {
seatHeight = newValue;
}
}
26. Inheritance
• Has a is a member of class
Example:
class Vehicle {
int wheel;
}
• In above example, Vehicle has a wheel
27. Inheritance
• Is a is a relation of class
Example:
class Vehicle { }
class Bike extends Vehicle { }
class Car extends Vehicle { }
• In above example,
Bike is a Vehicle
Car is a Vehicle
Vehicle might be a Car, but not always
28. Polymorphism
• The dictionary definition of polymorphism refers
to a principle in biology in which an organism or
species can have many different forms or stages
• This principle can also be applied to object-
oriented programming and languages like the
Java language
• Subclasses of a class can define their own
unique behaviors and yet share some of the
same functionality of the parent class
29. Polymorphism
public class Bicycle { // PARENT or SUPERCLASS
// the Bicycle class has three fields
private int cadence;
private int gear;
private int speed;
// the Bicycle class has one constructor
public Bicycle(int startCadence, int startSpeed, int startGear) {
gear = startGear; cadence = startCadence; speed = startSpeed;
}
// the Bicycle class has three methods
public void printDescription() {
System.out.println(“Gear=" + gear + " cadence=" + cadence + " and speed=" + speed);
}
public void applyBrake(int decrement) {
speed -= decrement;
}
public void speedUp(int increment) {
speed += increment;
}
// Setter Getter
}
30. Polymorphism
public class MountainBike extends Bicycle { // CHILD or SUBCLASS
// the MountainBike subclass adds one field
private String suspension;
// the MountainBike subclass has one constructor
public MountainBike(String suspension,int startCadence,int
startSpeed,int startGear){
super(startCadence, startSpeed, startGear);
setSuspension(suspension);
}
public void printDescription() { // Override
super. printDescription();
System.out.println("MountainBike has a" + getSuspension());
}
// Setter Getter
}
31. Polymorphism
public class RoadBike extends Bicycle { // CHILD or SUBCLASS
// the RoadBike subclass adds one field
private int tireWidth;
// the RoadBike subclass has one constructor
public RoadBike(int tireWidth,int startCadence,int startSpeed,int
startGear){
super(startCadence, startSpeed, startGear);
setTireWidth(tireWidth);
}
public void printDescription() { // Override
super. printDescription();
System.out.println(“RoadBike has a" + getTireWidth());
}
// Setter Getter
}
32. Polymorphism
public class TestBikes {
public static void main(String[] args) {
Bicycle bike01, bike02, bike03;
bike01 = new Bicycle(20, 10, 1);
bike02 = new MountainBike(20, 10, 5, "Dual");
bike03 = new RoadBike(40, 20, 8, 23);
bike01.printDescription();
bike02.printDescription();
bike03.printDescription();
}
}
33. Interface
• There are a number of situations in software
engineering when it is important for disparate
groups of programmers to agree to a "contract"
that spells out how their software interacts
• Each group should be able to write their code
without any knowledge of how the other group's
code is written
• Generally speaking, interfaces are such
contracts
34. Interface
• For example, imagine a futuristic society where
computer-controlled robotic cars transport
passengers through city streets without a human
operator
• Automobile manufacturers write software (Java,
of course) that operates the automobile—stop,
start, accelerate, turn left, and so forth
35. Interface
• The auto manufacturers must publish an
industry-standard interface that spells out in
detail what methods can be invoked to make the
car move (any car, from any manufacturer)
• The guidance manufacturers can then write
software that invokes the methods described in
the interface to command the car
36. Interface
• Neither industrial group needs to know how the
other group's software is implemented
• In fact, each group considers its software highly
proprietary and reserves the right to modify it at
any time, as long as it continues to adhere to the
published interface
40. Abstract Class
• An abstract class is an incomplete class.
• A class that is declared abstract—it may or may
not include abstract methods
• Abstract classes cannot be instantiated, but they
can be subclassed
41. Abstract Class
• An abstract method is a method that is declared
without an implementation (without braces, and
followed by a semicolon), like this:
abstract void moveTo(int x, int y);
• If a class includes abstract methods, then the
class itself must be declared abstract, as in:
public abstract class GraphicObject {
abstract void draw();
}
42. Abstract Class
• When an abstract class is subclassed, the
subclass usually provides implementations for
all of the abstract methods in its parent class
• However, if it does not, then the subclass must
also be declared abstract
• Abstract classes are similar to interfaces, we
cannot instantiate them
43. Abstract Class
• However, with abstract classes, you can declare
fields that are not static and final, and define
public, protected, and private concrete methods
• With interfaces, all fields are automatically
public, static, and final, and all methods that you
declare or define (as default methods) are public
• In addition, you can extend only one class,
whether or not it is abstract, whereas you can
implement any number of interfaces
44. Abstract Class
• First you declare an abstract
class, GraphicObject, to provide member
variables and methods that are wholly shared by
all subclasses. GraphicObject also declares
abstract methods for such as draw or resize, that
need to be implemented by all subclasses but
must be implemented in different ways
45. Abstract Class
abstract class GraphicObject {
int x, y;
void moveTo(int newX, int newY) { }
abstract void draw();
abstract void resize();
}
46. Abstract Class
class Circle extends GraphicObject {
void draw() { }
void resize() { }
}
class Rectangle extends GraphicObject {
void draw() { }
void resize() { }
}
47. Abstract Class
abstract class X implements Y {
// implements all but one method of Y
}
class XX extends X {
// implements the remaining method in Y
}
48. Nested Class
• The name "nested class" suggests you just write
a class declaration inside a class
• Actually, there are four different kinds of nested
classes specialized for different purposes, and
given different names
49. Nested Class
• All classes are either:
– Top-level or nested
– Nested classes are:
• Static classes or inner classes
• Inner classes are:
– Member classes or local classes or anonymous classes
51. Nested Class – Nested Static
• Example:
class Top {
static class MyNested { }
}
• A static nested class acts exactly like a
top-level class
52. Nested Class – Nested Static
• The only differences are:
– The full name of the nested static class
includes the name of the class in which it is
nested, e.g. Top.MyNested
– Instance declarations of the nested class
outside Top would look like:
Top.MyNested myObj = new Top.MyNested();
– The nested static class has access to all the
static methods and static data of the class it is
nested in, even the private members.
53. Nested Class – Nested Static
class Top {
int i;
static class MyNested {
Top t = new Top();
{
t.i = 3; // accessing Top data
}
}
}
• This code shows how a static nested class can access instance data
of the class it is nested within
54. Nested Class – Nested Static
• Where to use a nested static class:
Imagine you are implementing a complicated
class. Halfway through, you realize that you
need a "helper" type with some utility
methods. This helper type is self-contained
enough that it can be a separate class from
the complicated class. It can be used by other
classes, not just the complicated class. But it
is tied to the complicated class. Without the
complicated class, there would be no reason
for the helper class to exist
55. Nested Class – Nested Static
• Before nested classes, there wasn't a
good solution to this, and you'd end up
solving it by making the helper class a top-
level class, and perhaps make some
members of the complicated class more
public than they should be
• Today, you'd just make the helper class
nested static, and put it inside the
complicated class
56. Nested Class – Inner Class
• Java supports an instance class being
declared within another class, just as an
instance method or instance data field is
declared within a class
• The three varieties of inner class are
– Member class
– Local class
– Anonymous class
57. Nested Class – Inner Class – Member Class
• Example:
class Top {
class MyMember { }
}
• Member class will have fields and
methods
58. Nested Class – Inner Class – Member Class
public class Top {
int i = 10;
class MyMember {
int k = i;
int foo() {
return this.k;
}
}
void doCalc() {
MyMember m1 = new MyMember();
MyMember m2 = new MyMember();
m1.k = 10 * m2.foo();
System.out.println("m1.k = " + m1.k);
System.out.println("m2.k = " + m2.k);
}
public static void main(String[] args) {
Top t = new Top();
t.doCalc();
}
}
59. Nested Class – Inner Class – Local Class
public class Top {
void doCalc() {
class MyLocal {
int k = 5;
int foo() {
return this.k * 10;
}
}
MyLocal m = new MyLocal();
System.out.println("m.k = " + m.k);
System.out.println("m.foo = " + m.foo());
}
public static void main(String[] args) {
Top t = new Top();
t.doCalc();
}
}
60. Nested Class – Inner Class – Anonymous Class
public abstract class MyAbstract {
public abstract void print();
}
public class MyAnonymous {
public static void main(String[] args) {
MyAbstract m = new MyAbstract() {
@override
public void print() {
System.out.println(“TEST”);
}
}
}
}
61. Nested Class – Inner Class – Anonymous Class
public class MyAnonymous {
public void print() {
System.out.println(“PRINT IN ANONYMOUS”);
}
}
public class Test {
public static void main(String[] args) {
MyAnonymous m = new MyAnonymous() {
public void print() {
System.out.println(“PRINT IN MAIN”);
}
};
m.print();
}
}
62. JAR
• JAR = Java Archive
• JAR = Zip File
• To make JAR running, we create a manifest
which is the main class to start
63. JAR
• How to make JAR:
1. Right click in root project
2. Click “Export”
3. Choose “Runnable JAR file”
4. Choose the main class and export destination
5. Finish
Bike is in gear 1 with a cadence of 20 and travelling at a speed of 10.
Bike is in gear 5 with a cadence of 20 and travelling at a speed of 10.
The MountainBike has a Dual suspension.
Bike is in gear 8 with a cadence of 40 and travelling at a speed of 20.
The RoadBike has 23 MM tires.