Review of Java

Review of Java

Review of Java z Classes are object factories ¾ Encapsulate state/data and behavior/methods ¾ Ask not what you can do to an object, but what … z A program is created by using classes in libraries provided and combining these with classes you design/implement ¾ Design classes, write methods, classes communicate ¾ Communication is via method call z We've concentrated on control within and between methods ¾ Data types: primitive, array, String ¾ Control: if, for-loop, while-loop, return Genome Revolution: COMPSCI 006G 3.1 Smallest of 2, 3, …,n z We want to print the lesser of two elements, e.g., comparing the lengths of two DNA strands int small = Math.min(s1.length(),s2.length()); z Where does min function live? How do we access it? ¾ Could we write this ourselves? Why use library method? public class Math { public static int min(int x, int y) { if (x < y) return x; else return y; } } Genome Revolution: COMPSCI 006G 3.2 Generalize from two to three z Find the smallest of three strand lengths: s1, s2, s3 int small = … z Choices in writing code? ¾ Write sequence of if statements ¾ Call library method ¾ Advantages? Disadvantages? Genome Revolution: COMPSCI 006G 3.3 Generalize from three to N z Find the smallest strand length of N (any number) in array public int smallest(String[] dnaCollection) { // return shortest length in dnaCollection } z How do we write this code? Where do we start? ¾ ¾ ¾ Genome Revolution: COMPSCI 006G 3.4 Static methods analyzed z Typically a method invokes behavior on an object ¾ Returns property of object, e.g., s.length(); ¾ Creates new object from other, e.g., s.substring(2,5); ¾ Causes object to change state, e.g., dna.cleave(rna); z Sometimes we don't need an object, e.g., square-root, min, even find CG ratio! ¾ Static method invoked using class-name, not object ¾ All information passed in, no internal state ¾ Compare to String substring, need state of internal chars Genome Revolution: COMPSCI 006G 3.5 How do we know about stuff? z Where is documentation for Math class? ¾ Where does Math class live in relation to other classes? ¾ How do we access and read documentation? z By convention Java classes include comments processed by a program called javadoc that generates web pages ¾ Writing stylized comments facilitates browsable docs ¾ API is application programming interface http://www.cs.duke.edu/csed/java/jdk1.4/docs/api/ for Java http://www.cs.duke.edu/csed/java/biojava-api/ for biojava Genome Revolution: COMPSCI 006G 3.6 Organization of classes z Java classes are organized into packages ¾ Keep related classes together ¾ Facilitates conceptual use and development (from client/programmer view and developer/programmer view) z Access to classes provided by import statement ¾ All classes in java.lang imported silently ¾ Math, String, Object, System,… ¾ Other packages require providing compiler with location • Packages organized hierarchically and conventionally named import java.util.Arrays; // to sort arrays import org.biojava.bio.seq.DNATools; Genome Revolution: COMPSCI 006G 3.7 Richard Stallman z One of world's best progammers/hackers ¾ Difference? Pejorative? z Developed GNU software ¾ C/C++, emacs, libraries ¾ Basis for Linux z Awards: ¾ Macarthur genius award ¾ Grace Murray Hopper z Invented copyleft, free software ¾ Free speech, not free beer ¾ Basis for most bioinformatics tools, Perl, biojava, … Genome Revolution: COMPSCI 006G 3.8 Genome Revolution: COMPSCI 006G 3.9.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    9 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us