23T1 Week 1
WEDNESDAY 1PM - 4PM (W13B)
FRIDAY 11AM - 2PM (F11A)
Slides by Alvin Cherk (z5311001)
git add
git commit
git push
git status
git log
{
and }
to describe code blocks (also scopes)If you are using VSCode on CSE machines (VLAB or in-person), please ensure you are using 2511 code
cvx02 % code --version
1.67.2
c3511e6c69bb39013c4a4b7b9566ec1ca73fc4d5
x64
vx02 % 2511 code --version
1.74.3
97dec172d3256f8ca4bfb2143f3f76b503ca0534
x64
If you don't some Java Extensions (notably the test runners) will not work properly.
See the Setup Troubleshooting Confluence page if you have encounter any issues
HelloWorld.java
Make a simple Java program that prints "Hello World" in the HelloWorld
class.
package example;
/**
* Prints "Hello World" to the console.
*/
public class HelloWorld {
public static void main(String[] args) {
// Does it need a \n?
// No, .println appends a \n to your string when it prints
System.out.println("Hello World");
}
}
Sum.java
Inside a new file called Sum.java
, write a program that uses the Scanner
class which reads in a line of numbers separated by spaces, and sums them.
package example;
import java.util.Arrays;
import java.util.Scanner;
/**
* Write a program that uses the `Scanner` class
* which reads in a line of numbers separated by spaces,
* and sums them.
*/
public class Sum {
public static void main(String[] args) {
/**
* new - Creates a new Scanner object. (Think of it like C Malloc, but Java's
* garbage collection frees it)
* Scanner is an object that allows us to specify an input
* System.in == stdin in C
*/
Scanner scanner = new Scanner(System.in);
/**
* Keeps reading input until it sees a \n
*
* Splits each string into an array of strings
*/
String[] numbers = scanner.nextLine().split(" ");
int sum = 0;
for (String number : numbers) {
sum += Integer.parseInt(number);
}
System.out.println("The sum is " + sum);
// Advanced
// Using streams
int streamSum = Arrays.asList(numbers).stream().mapToInt(x -> Integer.parseInt(x)).sum();
System.out.println(String.format("The sum is %d", streamSum));
/**
* Frees I/O resources
* Java's garbage collector only manages memory, not other resources
*/
scanner.close();
}
}
Loop.java
public class LoopExample {
public static void main(String[] args) {
String[] myStrings = { "Hello", "World", "No" };
// Index based looping
for (int i = 0; i < myStrings.length; i++) {
String current = myStrings[i];
System.out.println(current);
}
// For-range / for-in loop
for (String current : myStrings) { // Very python like
System.out.println(current);
}
}
}
Shouter.java
Inside a new file Shouter.java
, Write a program that stores a message and has methods for getting the message, updating the message and printing it out in all caps. Write a main()
method for testing this class.
package example;
public class Shouter {
private String message;
public Shouter(String message) {
this.message = message;
}
public String getMessage() {
// NOTE: You don't have to use the keyword `this`
// But I use it because of clarity
return this.message;
}
public void setMessage(String newMessage) {
this.message = newMessage;
}
public String toString() {
return String.format("Shouter message = %s", this.message);
}
public void printMe() {
System.out.println(this.message);
}
public void shout() {
System.out.println(this.message.toUpperCase());
}
public void printAndShout() {
// NOTE: You don't have to use the keyword `this`
// But I use it because of clarity
this.printMe();
this.shout();
}
public static void main(String[] args) {
Shouter s = new Shouter("This is my message");
s.printMe();
s.shout();
// When printing objects, Java will try and stringify
// In this case, it calls the .toString() method
System.out.println(s);
}
}